我有一个网站,用户可以上传其个人资料的图片。由于我们的资源有限,因此图像需要在一定的范围内。但是,我不想强制用户仅在该大小下上传图像。我想知道是否有可能在PHP中将任何大小的图像压缩到某个特定大小。 看看其他SA问题,似乎唯一相似的是:
imagejpeg($tn, $save, 75);
然而,如果图像是巨大的,那么它仍将仅被压缩到75%,而非常小的图像将失去更多的质量。
所以我的问题是:是否可以将任何尺寸的图像压缩到另一个特定尺寸?
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
我将phpThumb用于此目的 - http://phpthumb.sourceforge.net/
include("phpthumb.class.php");
$image_destination = '/path/to/destination/file.jpg';
$phpThumb = new phpThumb();
$phpThumb->setSourceFilename($_FILES['file']['tmp_name']);
$phpThumb->setParameter('w', 400);
$phpThumb->setParameter('h', 400);
$phpThumb->GenerateThumbnail();
$phpThumb->RenderToFile($image_destination);
使用此功能的优点是您可以指定控制图像输出方式的参数,例如:
w:图像的宽度
h:图像的高度
zc:放大图像的中心
远:强制宽高比
iar:忽略宽高比
您可以仅指定w
,然后在保持纵横比的同时自动计算高度。您可以在http://phpthumb.sourceforge.net/demo/docs/phpthumb.readme.txt