如何使用PHP和JPEG减小文件大小

时间:2010-02-11 13:46:50

标签: php image resize jpeg

我使用的是标准PHP函数imagecopytruecolorimagejpeg  从标准HTML表单重新缩放并生成上传的图像。

图像以正确的大小显示,但图像文件大小非常高(例如540px * 350px = 250kb)

与使用JPEG高质量设置的Photoshop的Save for Web相比,相同的文件大约为60kb,因此大约是4倍。

我有什么办法可以减少文件大小吗?

4 个答案:

答案 0 :(得分:6)

您可以在imageJPEG中设置$quality。来自manual

  

bool imagejpeg(resource $ image [,string $ filename [,int $ quality]])

     

质量是可选的,范围从0(最差质量,较小文件)到100(最佳质量,最大文件)。默认值是默认的IJG质量值(约75)。

根据我的经验,不建议低于70%。

想要尝试使用来自其他图像处理引擎(如ImageMagick)的较小文件大小来获得更好的结果,如果可以的话。我经常觉得GD的JPG编码器不是最重要的,但这只不过是目前的主观印象。

答案 1 :(得分:1)

我见过的图像库没有任何接近Photoshop压缩文件的效率。你可以尝试使用像ImageMagick(又名Imagick)这样的另一个库,它可以保存比您使用的默认内容相同的质量大小的较小文件,但请记住,你永远不会从这些库中获得60K图像。

答案 2 :(得分:0)

您可以更改质量设置(imagejpeg的第3个参数,请参阅the docs)。但默认值只有75%,应该已经相当小了。

答案 3 :(得分:0)

来自docs

  

bool imagejpeg(resource $ image [,string $ filename [,int $ quality]])

使用$ quality进行实验