我有下面的图像,我想裁剪,所以所有黑色区域都被删除,拇指返回。 拇指必须是130px(宽度)乘155px(高度)。
如何使用PHP的GD库裁剪它? (Imagick图书馆不是一个选项)。
如果我的问题有所改进,请告诉我。
修改
我使用了@Martijn建议的imagecopyresized()函数,代码如下
imagecopyresized(
imagecreatetruecolor(130,155) ,
imagecreatefromjpeg($src_image) ,
0,
0,
0,
0,
130,
155,
260 ,
310
)
我得到的是这个结果
我做错了什么?
答案 0 :(得分:3)
这对于图书馆来说可能很难,因为黑色的大小可能不同,而您可能想要的图像部分并不总是相同。
我建议jCrop(是的,网站非常小),它允许您选择图像的一部分。如果可以手工完成,这是一种非常简单的方法。我在我公司的CMS'中使用它,我们的客户从不需要解释it works, very natural:)
如果这不是一个选项,您可以尝试imagecopyresampled()
:
imagecopyresampled(
$dst_image , // the thumb you want to place it on
$src_image , // the image to crop it from
0, // place left of thumb
0, // place top of thumb
0, // start from left of input image
0, // start from top of input image
130, // destination width
155, // destination height
$src_w , // the width of the image without the black
$src_h // the height of the image without the black
)
如果黑色画布上的图像没有固定大小,则可以编写一个函数来查找偏移量。你可以通过拍摄第一行像素来找到第一个黑色像素,并检查之后是否存在(比方说)10分黑色像素。
这可能是敏感的,您可以增加侦察区域来测试黑色是否也在下面的行中。