pngquant是一个命令行实用程序和一个用于PNG图像有损压缩的库,本文就介绍安装及使用pngquant在Linux命令行上压缩PNG图像,pngquant可以将PNG图像的大小减少多达70%,同时保持完整的Alpha透明度。生成的图像与所有Web浏览器和操作系统兼容。
在Linux上安装pngquant pngquant可以从你的操作系统上游存储库安装,也可以从源代码编译,从源代码构建pngquant的优点是,可以获得最新版本,而不是系统存储库中可用的软件包。 1、在CentOS/Fedora上安装pngquant 首先安装所需的依赖项: sudo yum -y install git libpng-devel gcc cmake 然后从git克隆pngquant项目: git clone --recursive https://github.com/kornelski/pngquant.git 运行./configure并make以在当前目录中生成pngquant可执行文件: cd pngquant ./configure make 如果你想在系统范围内安装它,请运行以下命令: sudo make install 二进制文件将被复制到/usr/local/bin/pngquant: $ pngquant --version 2.12.2 (November 2018) 2、在Ubuntu/Debian上安装pngquant 安装所需的依赖项: sudo apt-get update sudo apt-get install -y git gcc cmake libpng-dev pkg-config 克隆pongquant git clone --recursive https://github.com/kornelski/pngquant.git 通过运行以下命令安装它: cd pngquant ./configure make sudo make install 3、在Arch Linux/Manjaro上安装pngquant 可以使用pacman命令在Arch Linux上安装最新版本的pngquant: sudo pacman -S pngquant 4、在Linux CLI上使用pngquant 可以使用--help选项打印所有pngquant选项: $ pngquant --help
示例1:用pngquant压缩PNG图像 在我的笔记本电脑中,我有一个3.9MB的PNG图像,我将用pngquant压缩: $ du -sh wallpaper-01.png 3.9M wallpaper-01.png 使用pngquant压缩图像的基本示例是: $ pngquant --force --quality=40-100 --strip --skip-if-larger \ --verbose wallpaper-01.png wallpaper-01.png: read 3893KB file used gAMA and cHRM chunks to transform image to sRGB colorspace made histogram…231676 colors found selecting colors…14% selecting colors…28% selecting colors…100% moving colormap towards local minimum eliminated opaque tRNS-chunk entries…0 entries transparent mapped image to new colors…MSE=6.201 (Q=79) writing 256-color image as wallpaper-01-fs8.png Quantized 1 image. 检查目标文件的大小: $ du -sh wallpaper-01-fs8.png 1.4M wallpaper-01-fs8.png 你可以看到大小是1.4MB,减少了2.5MB。 如果要使用受限文件覆盖原始文件,请使用--output file选项: $ pngquant --force --quality=40-100 --strip --skip-if-larger \ --verbose --output wallpaper-01.png wallpaper-01.png wallpaper-01.png: read 3893KB file used gAMA and cHRM chunks to transform image to sRGB colorspace made histogram…231676 colors found selecting colors…6% selecting colors…12% selecting colors…50% selecting colors…87% selecting colors…100% moving colormap towards local minimum eliminated opaque tRNS-chunk entries…0 entries transparent mapped image to new colors…MSE=6.111 (Q=79) writing 256-color image as wallpaper-01.png Quantized 1 image. 确认: $ du -sh wallpaper-01.png 1.4M wallpaper-01.png
示例2:压缩多个PNG图像 如果在当前文件夹中有多个PNG图像,则可以使用bash for循环来压缩所有项目: for i in *.png; do pngquant --force --quality=40-100 --strip --skip-if-larger \ --verbose $i done
示例3:搜索目录中的所有PNG图像并进行压缩 你还可以使用Linux find命令查找指定目录中的所有PNG图像(参考:使用find、locate、which、whereis命令在Linux下搜索文件和文件夹),然后压缩: find /mysite/wp-content/uploads/ -type f -iname '*.png' -exec \ pngquant --force --quality=40-100 --skip-if-larger --strip --verbose {} --output {} \; 将/mysite/wp-content/uploads/替换为递归搜索的路径。
相关主题 |