订阅本站
收藏本站
微博分享
QQ空间分享

安装及使用pngquant在Linux命令行上压缩PNG图像

lilin 分类:Linux命令 时间:2020/01/13 22:10:22 评论: 加入收藏

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

<a href=http://8u.hn.cn/linuxaz/ target=_blank class=infotextkey>安装</a>及使用pngquant在Linux<a href=http://8u.hn.cn/ssh/ target=_blank class=infotextkey>命令</a>行上<a href=http://8u.hn.cn/linuxsoft/zip/ target=_blank class=infotextkey>压缩</a>PNG图像

 

示例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:

文章评论

留言与评论(共有 0 条评论)
   
验证码: