有没有办法裁剪现有图像的一部分,然后将结果保存为新图像(文件)?
imagecopy
函数允许您为源图像指定x、y、w和h参数。结合使用imagecreatetruecolor
函数,您应该很容易地实现所需效果。文档中甚至还有一个imagecopy
的示例:
// Create image instances
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);
// Copy
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);
您可以使用gd函数来实现这个功能(manual)。
加载源图像(imagecreatefromstring()
可能很有用,因此您不必指定图像类型),创建输出图像(imagecreatetruecolor()
),并使用imagecopy()
(如果您不想调整大小)。最后使用imagepng()
输出图像,或将其保存到文件中。
请注意,gd在内存中不使用图像压缩,因此当创建高分辨率马赛克时,您的PHP进程可能需要大量RAM。尽快使用imagefree()
。