我正在尝试完成这项任务2天,在线阅读各种内容,但仍然无法找出发生了什么,也在这里阅读所有关于类似问题的内容,但没有。
我有400x400的图像,想要使用php gd生成120x120。使用此代码:
$image_p = imagecreatetruecolor(120,120);
$image = imagecreatefromstring($X_IMAGE);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 120, 120, 400, 400);
// RETURN
header('Content-Type: image/jpeg');
imagejpeg($image_p, null, 70);
//destroy...
$ X_IMAGE是400x400 JPG,存储为字符串。 所有图像都是在120x120中生成的,但是大多数图像在底部有一些黑色矩形,有些图像较大,有些图像较小但有50%的图像带有该正方形。所有都是可见的,只是图像的某些部分被黑色覆盖。什么是我的问题的解决方案?所有源图像都是JPG,而我需要的120x120是JPG,你可以看到......
答案 0 :(得分:3)
问题是原始图像不是正方形!您将400x400传递给imagecopyresampled
,但原始图像的高度可能不是400px!
例如,在您发布的图像中,您的原始图像不平整。当您告诉PHP重新采样其他图像资源上的正方形时,您将重新采样图像以及底部不存在的矩形。
解决方案取决于您想要输出的内容。