php环境,如何在服务器端使用pngquant压缩图片?
发布于 作者:苏南大叔 来源:程序如此灵动~

费力气在服务器端配置好了pngquant
之后,如果想在php
中进行调用处理图片的话,还需要进行一些配置。

本文测试环境:centos@7.7.1908
,php@7.3
,libpng@1.6.37
,pngquant@2.7.10
。
安装pngquant
安装pngquant
,请参考下面的文章:
安装libpng
,libpng-devel
,参考下面的文章:
重新安装pngquant
的依赖,参考下面的文章:

启用exec函数
因为是在服务器端执行命令行,所以启用了一个危险函数shell_exec()
。

不开启shell_exec()
的话,还可以换成其它函数,但是都是算在危险函数里面的。所以,想清楚后再开启,责任自负。
启用php扩展
gd2.so
和fileinfo.so
这两个扩展算是相关扩展,gd2.so
一般都是默认开启的,而fileinfo.so
一般都是要手工开启。如下截图,是在宝塔面板里面一键开启fileinfo
的截图。

php相关代码
先检测是不是png
图片(由fileinfo
扩展提供的功能),然后利用pngquant
对图片进行压缩。
这段代码中的思路,可以参考下面的文章:
相关链接
总结
在php
中使用pngquant
,可以对png
类型的图片进行服务器端压缩。fileinfo
扩展是用来检测图片类型的。更多文章,请参考苏南大叔的pngquant
系列文章:


