PHP - 如何将用户上传的图像压缩为特定大小

时间:2017-04-04 20:43:07

标签: php image

我有一个网站,用户可以上传其个人资料的图片。由于我们的资源有限,因此图像需要在一定的范围内。但是,我不想强​​制用户仅在该大小下上传图像。我想知道是否有可能在PHP中将任何大小的图像压缩到某个特定大小。 看看其他SA问题,似乎唯一相似的是:

imagejpeg($tn, $save, 75); 

然而,如果图像是巨大的,那么它仍将仅被压缩到75%,而非常小的图像将失去更多的质量。

所以我的问题是:是否可以将任何尺寸的图像压缩到另一个特定尺寸?
任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:0)

您见过imagecopyresampled?

吗?

答案 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

查看所有参数