我正试图完成这个任务2天,阅读各种各样的东西在网上,但仍然找不到发生了什么,也阅读所有这里在SO关于类似的问题,但没有。
我有图像400x400,并希望生成120x120使用php gd。使用以下代码:
$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格式的你们可以看到。
问题是您的原始图像不是正方形!你将400x400传递给imagecopyresampled
,但原始图像的高度可能不是400px!
解决方案取决于您想要输出的内容。
- 你想要一个保持比例的缩放图像吗?例如,从400x300到120x90。
- 或缩放图像不保持比例?例如,从400x300到扭曲的120x120?
- 还是裁剪的缩略图?400x300到120x120与左右部分修剪出来一点?
- 你想用白色矩形替换黑色矩形,所以用那种方式填充重新采样的图像吗?