裁剪图像的一部分(不是调整大小/缩略图等)

4
有没有办法裁剪现有图像的一部分,然后将结果保存为新图像(文件)?

1
你想要剪掉多少,从哪里剪掉? - Justin Johnson
我正在根据内容从URL中搜索图像,并希望从算法选择的页面上找到的图像创建马赛克。我将生成随机数字以确定要剪切哪些像素,因为我希望它能自动运行,而不是试图获取图片的“最佳部分”或类似的东西。 - user359294
1
@Col. Shrapnel 哇,老兄,你的态度真的很糟糕。 - Justin Johnson
2个回答

5

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);

使用imagejpegimagepng将图像保存到文件中。


1

您可以使用gd函数来实现这个功能(manual)。

加载源图像(imagecreatefromstring()可能很有用,因此您不必指定图像类型),创建输出图像(imagecreatetruecolor()),并使用imagecopy()(如果您不想调整大小)。最后使用imagepng()输出图像,或将其保存到文件中。

请注意,gd在内存中不使用图像压缩,因此当创建高分辨率马赛克时,您的PHP进程可能需要大量RAM。尽快使用imagefree()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接