我想知道如何自动计算出最佳压缩率(小文件大小+无质量损失)。
目前,我对每个.jpg
都使用imagejpeg()和$quality = 85
。
PageSpeed (Chrome Plugin)建议,降低一些图像的质量以节省一些kb。减少的百分比是不同的。
我想写一个cronjob来抓取一个特定的目录并优化每个图像。
PageSpeed或TinyPNG如何计算出最佳的优化质量,这在PHP或其他服务器端语言中是否可行?
发布于 2013-10-31 08:24:01
TinyPNG使用pngquant。
Pngquant具有设置所需质量的选项,类似于JPEG。你可以运行类似这样的命令:
<?php system('pngquant --quality=85 image.png'); ?>
Pngquant website has example code showing how to use pngquant from PHP。
对于JPEG,你可以应用无损jpegcrush。
JpegMini (商业)和jpeg-archive (免费)是有损的,可以自动为JPEG找到最小的良好质量。
在PHP中,您可以通过观察重新压缩后文件大小的变化来大致估计JPEG的压缩量。以相同或更高质量重新压缩的JPEG文件大小不会有太大变化(但会损失视觉质量)。
如果重新压缩JPEG并看到文件大小减半,则保留重新压缩的版本。如果你只看到文件大小下降了10-20%,那就保留原来的文件。
如果您正在压缩自己,请使用MozJPEG (这里有一个online version)。
https://stackoverflow.com/questions/19696187
复制相似问题