PHP:如何压缩图像而不会失去可见的质量(自动)?

时间:2013-10-31 00:10:48

标签: php image cron compression server-side

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

目前我正在imagejpeg()使用$quality = 85 .jpg。{/ p>

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

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

PageSpeed或TinyPNG如何找出最佳的优化质量,这是否可以通过PHP或其他服务器语言实现?

1 个答案:

答案 0 :(得分:28)

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)。