我使用的是标准PHP函数imagecopytruecolor
和imagejpeg
从标准HTML表单重新缩放并生成上传的图像。
图像以正确的大小显示,但图像文件大小非常高(例如540px * 350px = 250kb)
与使用JPEG高质量设置的Photoshop的Save for Web相比,相同的文件大约为60kb,因此大约是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)