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/替换为递归搜索的路径。
TAG:
除非注明,文章均由 Linux系统学习 整理发布,欢迎转载。如有版权争议,请联系删除。
文章评论
留言与评论(共有 0 条评论)
验证码: