PNG优化工具
之前我用过一个叫“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