PNG优化工具

12 投票
4 回答
12077 浏览
提问于 2025-04-15 17:34

之前我用过一个叫“smush it”的PNG优化服务。你只需要把一个网页链接给它,它就会把所有的PNG图片打包成一个zip文件,并且把文件大小优化得很好。

我想在我网站的图片上传过程中实现类似的优化功能;有没有人知道有没有现成的库(最好是PHP或Python)可以用来实现这个?我简单搜索了一下,发现了一些命令行工具,但如果可以的话,我更希望不走那条路。

4 个回答

3

你听说过PNGCrush吗?你可以去看看它的源代码,它是SourceForge上PNG和MNG工具的一部分,然后可以把它转录或者用Python封装起来。

4

只要你的PHP是带有GD2支持的(现在这种情况很常见):

<?php
$image = imagecreatefromstring(file_get_contents('/path/to/image.original.png'));
imagepng($image, '/path/to/image.smushed.png', 9);

这段代码可以读取GD2支持的任何图片格式(不仅仅是PNG),并将其输出为PNG格式,同时使用gzipped压缩到最大程度,而且不会降低图片质量。

不过,现在这个功能可能没有以前那么重要了;因为大多数图片编辑软件已经可以做到这一点,而且现在gzipping对CPU的消耗也没有以前那么大了。

14

用PHP执行这个命令行工具

  pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB -brute -l 9 -max -reduce -m 0 -q IMAGE
  optipng -o7 -q pngout.png
  pngout pngout.png -q -y -k0 -s0
  advpng -z -4 pngout.png > /dev/null
  • pngcrush - 这是一个用来压缩PNG图片的工具。
  • OptiPNG - 这个工具也可以优化PNG图片,让它们更小。
  • pngout - 这是另一个PNG图片压缩工具,能进一步减小文件大小。
  • advpng - 这个工具同样用于优化PNG图片,帮助你节省存储空间。

撰写回答