19

我想知道如何自动计算出最佳压缩率(小文件大小+无质量损失)。

目前我正在使用imagejpeg()$quality = 85for each .jpg

PageSpeed(Chrome 插件)建议降低一些图像的质量以节省一些 kb。减少的百分比是不同的。

我想编写一个爬取特定目录并优化每个图像的 cronjob。

PageSpeed 或TinyPNG如何确定最佳优化质量,这可以通过 PHP 或其他服务器端语言实现吗?

4

1 回答 1

28

TinyPNG 使用pngquant

Pngquant 具有设置所需质量的选项,类似于 JPEG。你可以运行类似的东西:

<?php system('pngquant --quality=85 image.png'); ?>

Pngquant 网站有示例代码显示如何使用 PHP 中的 pngquant


对于 JPEG,您可以应用无损 jpegcrush

JpegMini(商业)和jpeg-archive(免费)是有损的,可以自动找到 JPEG 的最低质量。

在 PHP 中,您可以通过观察重新压缩后文件大小的变化量来粗略估计压缩了多少 JPEG。以相同或更高质量重新压缩的 JPEG 文件大小不会有太大变化(但会损失视觉质量)。

如果您重新压缩 JPEG 并看到文件大小减半,请保留重新压缩的版本。如果您看到文件大小仅减少 10-20%,请保留原始文件。

如果您自己压缩,请使用MozJPEG(这里是在线版本)。

于 2013-10-31T00:24:00.623 回答