- A+
Pngquant是一款免费的开源和跨平台命令行有损PNG压缩器。它基于可移植的libimagequant库,用C99编写。通过将PNG图像转换为更高效的8位 PNG格式并保留完整的Alpha透明度,它可以显着减小文件大小。您可能已经知道,8位PNG文件通常比24/32位PNG文件小60-80%。使用Pngquant压缩的图像与所有Web浏览器和操作系统完全兼容。Pngquant可以一次压缩一个或多个图像。
功能点
Pngquant具有以下功能。
- 支持批量转换多个PNG文件。
- 高品质的调色板生成。
- 它使用Median Cut量化算法来优化图像。
- 可以轻松地与shell脚本,GUI和服务器端软件集成。
- 转换所需质量的图像并跳过无法以所需质量转换的图像。
- 多核支持和英特尔SSE优化。
安装
Pngquant可以通过多种方式安装。
从发行版的存储库安装Pngquant
Pngquant在大多数Linux发行版的默认存储库中都可用。
在Arch Linux及其变体上,Pngquant可以在[Community]存储库中找到。启用社区存储库并使用Pacman安装它,如下所示。
$ sudo pacman -S pngquant
On Debian, Ubuntu, Linux Mint:
$ sudo apt install pngquant
On Ubuntu systems, you need to enable [Universe] repository to install Pngquant.
To enable Universe repository, do:
$ sudo add-apt-repository universe
On Fedora:
$ sudo dnf install pngquant
On openSUSE:
$ sudo zypper install pngquant
On CentOS:
$ sudo yum install epel-release
$ sudo yum install pngquant
检查已安装的Pngquant版本:
$ pngquant -V 2.7.2 (June 2016)
默认存储库中可用的Pngquant版本可能很旧。如果您想要最新版本,请从源代码编译并手动安装,如下所示。
从源代码安装Pngquant
首先,安装安装必要的依赖项。
On Debian, Ubuntu:
$ sudo apt install git gcc cmake libpng-dev pkg-config
On CentOS, Fedora:
$ sudo yum install git libpng-devel gcc cmake
接下来,git克隆最新版本的Pngquant:
$ git clone --recursive https://github.com/kornelski/pngquant.git
上面的命令将下载Pngquant GitHub存储库的内容并将其保存在当前工作目录中名为“pngquant”的文件夹中。
切换到“pngquant目录:
$ cd pngquant
最后,运行以下命令来编译和安装Pngquant:
$ make
$ sudo make install
Pngquant 默认安装在/usr/local/bin位置。如果要将其安装在另一个目录中运行:
$ ./configure --prefix=dir && make
将“dir”替换为您的路径。您需要先运行此命令,然后运行“sudo make install”命令。
检查Pngquant版本:
$ pngquant -V 2.12.5 (July 2019)
这是最新版本。
有关其他安装方法,请参阅Pngquant 官方安装页面。
使用Pngquant在Linux上压缩PNG图像
Pngquant的使用是微不足道的,并且不需要任何特殊技能来使用它。
我在当前目录中有名为“line.png”的PNG图像文件。让我告诉你它的大小。
$ du -sh line.png 164K ostechnix.png
如您所见,图像大小为164k。
压缩PNG图像
现在让我们使用命令压缩上面的图像:
$ pngquant line.png
上面的命令将压缩ostechnix.png文件并将其保存为名为“line-fs8.png”的新文件。默认情况下,Pngquant将使用与输入文件名相同的输出文件名,最后使用suffix -or8.png或-fs8.png。这意味着它不会覆盖源文件。如果您对压缩率不满意,只需删除压缩文件并保留原始压缩文件即可。
让我们再次检查压缩的图像文件大小:
$ du -sh line-fs8.png 56K line-fs8.png
Pngquant将164k尺寸的图像缩小到56k。这确实是一份好工作。使用任何图像查看器打开图像并进行比较。原始图像和压缩图像之间的质量差异不大。两个图像看起来几乎相同!
压缩时显示状态消息
默认情况下,Pngquant在压缩图像时不会显示幕后发生的事情。如果要查看状态消息,请使用以下命令:
$ pngquant line.png --verbose line.png: read 163KB file made histogram...28736 colors found selecting colors...8% selecting colors...16% selecting colors...66% selecting colors...100% moving colormap towards local minimum eliminated opaque tRNS-chunk entries...27 entries transparent mapped image to new colors...MSE=4.782 (Q=84) writing 256-color image as line-fs8.png Quantized 1 image.
压缩多个PNG图像
Pngquant还可以转换多个图像。以下命令将压缩当前工作目录中的picture1.png和picture2.png。
$ pngquant picture1.png picture2.png
此外,我们可以移动目录中的所有文件并一次压缩它们。例如,要转换名为“/ home / sk / images”的文件夹中的所有图像,请运行:
$ pngquant /home/sk/images/*.png
更改输出文件名后缀
就像我已经说过的那样,输出文件名与输入名称相同,只是它以“-fs8.png”,“ - or8.png”结尾。但是,您可以根据需要更改后缀。
$ pngquant line.png --ext linux.png
此命令将压缩ostechnix.png文件并将其保存为line.png。
如果压缩文件的大小大于原始文件,则跳过保存文件
如果转换后的文件大于源文件,那么压缩点是什么?这种转换不值得,所以我们可以像下面这样跳过它。
$ pngquant --skip-if-larger line.png
上面的命令只会保存转换后的文件,如果它小于原始文件。
保存转换后的文件在不同的路径
默认情况下,Pngquant会将输入和输出图像文件保存在同一目录中。如果要将输出文件保存在其他位置,则命令为:
$ pngquant line.png --output Documents/output.png
此命令将压缩ostechnix.png并将其保存为output.png在Documents 目录。
以自定义质量压缩图像
Pngquant尽可能压缩图像。我们还可以手动设置图像的质量。Pngquant允许我们使用最小和最大参数将图像质量设置在0(最差)到100(完美)的范围内。
以下示例将最低图像质量设置为60,将最高质量设置为80。
$ pngquant --quality=60-80 image.png
如果转换导致质量低于最低质量,则不会保存图像。
剥离图像元数据
图像元数据是关于法师的一组数据。它包括有关图像的所有信息,例如图像格式,相机设置,DPI,图像的日期和时间,标题和注释,地理位置等等。请参阅以下文章以了解如何查看图像元数据。
如果您没有元数据,可以使用下面的pngquant简单地删除它。
$ pngquant --strip image.png
有关详细信息,请参阅手册页。
$ man pngquant
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫