Pngquant – 在 Linux 上压缩 PNG 图像的命令行实用程序

鹏量子 是一个免费、开源和跨平台的命令行有损 PNG 压缩器。 它基于便携式 libimagequant 图书馆,并写在 C99. 它通过将PNG图像转换为更有效的方式显着减小了文件大小 8位 PNG格式并保留 完全 alpha 透明度. 您可能已经知道,8 位 PNG 文件通常比 24/32 位 PNG 文件小 60-80%。 使用 Pngquant 压缩的图像与所有网络浏览器和操作系统完全兼容。 Pngquant 可以一次压缩一个或多个图像。 在本指南中,让我们看看如何安装 Pngquant 以及如何在 Linux 上使用 Pngquant 压缩 PNG 图像。

特征

Pngquant 具有以下特点。

  • 支持批量转换多个PNG文件。
  • 高质量的调色板生成。
  • 它使用 Median Cut 量化算法来优化图像。
  • 可以轻松地与 shell 脚本、GUI 和服务器端软件集成。
  • 以所需质量转换图像并跳过无法以所需质量转换的图像。
  • 多核支持和英特尔 SSE 优化。

在 Linux 中安装 Pngquant

Pngquant 可以通过多种方式安装。

从发行版的存储库中安装 Pngquant

Pngquant 在大多数 Linux 发行版的默认存储库中都可用。

在 Arch Linux 及其变体上,Pngquant 可用于 [Community] 存储库。 启用社区存储库并使用安装它 吃豆人 如下所示。

$ sudo pacman -S pngquant

在 Debian、Ubuntu、Linux Mint 上:

$ sudo apt install pngquant

在 Ubuntu 系统上,您需要启用 [Universe] 安装 Pngquant 的存储库。

要启用 Universe 存储库,请执行以下操作:

$ sudo add-apt-repository universe

在 Fedora:

$ sudo dnf install pngquant

在 openSUSE 上:

$ sudo zypper install pngquant

在 CentOS 上:

$ sudo yum install epel-release
$ sudo yum install pngquant

检查已安装的 Pngquant 版本:

$ pngquant -V
2.5.0 (June 2015)

默认存储库中可用的 Pngquant 版本可能较旧。 如果您想要最新版本,请从以下源代码编译并手动安装它。

从源代码安装 Pngquant

首先,安装安装必要的依赖项。

在 Debian、Ubuntu 上:

$ sudo apt install git gcc cmake libpng-dev pkg-config

在 CentOS 上, Fedora:

$ sudo yum install git libpng-devel gcc cmake

接下来,git clone 最新版本的 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 进行安装”命令。

检查 Pngquant 版本:

$ pngquant -V
2.12.5 (July 2019)

看? 它是最新版本。

使用 Cargo 安装 Pngquant

Pngquant 也可以使用安装 货物 包管理器。 一、安装 如以下链接中所述。

  • 在 Linux 中安装 Rust 编程语言

git clone 最新版本的 Pngquant:

$ git clone --recursive https://github.com/kornelski/pngquant.git

最后,使用 Cargo 构建和安装 Pngquant,如下所示。

$ cd pngquant
$ sudo cargo build --release

其他安装方式请参考Pngquant 官方安装页面.

在 Linux 上使用 Pngquant 压缩 PNG 图像

Pngquant 的使用很简单,不需要任何特殊技能即可使用。

我的当前目录中有名为“ostechnix.png”的 PNG 图像文件。 让我告诉你它的大小。

$ du -sh ostechnix.png 
152K ostechnix.png

如您所见,图像大小为 152k.

压缩 PNG 图像

要使用 Pngquant 压缩 PNG 图像,只需提供如下路径:

$ pngquant ostechnix.png

上面的命令将压缩 ostechnix.png 文件并将其保存为一个新的文件,名称为 “ostechnix-fs8.png”. 默认情况下,Pngquant 将使用与带后缀的输入文件名相同的输出文件名 -or8.png 或者 -fs8.png 在末尾。 这意味着它不会覆盖源文件。 如果您对压缩率不满意,只需删除压缩文件并保留原始文件即可。

让我们再次检查压缩图像文件的大小:

$ du -sh ostechnix-fs8.png 
48K ostechnix-fs8.png

使用 Pngquant 压缩 PNG 图像

看? Pngquant 减少了 152k 将图像大小调整为 48k. 这确实是一份好工作。 使用任何图像查看器打开图像并进行比较。 您不会发现原始图像和压缩图像之间的质量差异很大。 两张图片看起来几乎一样!

压缩时显示状态信息

默认情况下,Pngquant 在压缩图像时不会显示幕后发生的事情。 如果要查看状态消息,请使用以下命令:

$ pngquant ostechnix.png --verbose
ostechnix.png:
conserving memory
read 152KB file
corrected image from gamma 2.2 to sRGB gamma
made histogram...1854 colors found
selecting colors...4%
selecting colors...25%
selecting colors...28%
selecting colors...49%
selecting colors...69%
selecting colors...90%
selecting colors...100%
moving colormap towards local minimum
eliminated opaque tRNS-chunk entries...61 entries transparent
mapped image to new colors...MSE=0.055 (Q=99)
writing 256-color image as ostechnix-fs8.png
No errors detected while quantizing 1 image.

现在您将看到压缩发生时的进度。

压缩多个PNG图像

Pngquant 还可以转换多个图像。 以下命令将压缩 图片1.png图片2.png 在当前工作目录中。

$ pngquant picture1.png picture2.png

此外,我们可以移动目录中的所有文件并一次压缩它们。 例如,要转换名为“/home/sk/images”的文件夹中的所有图像,请运行:

$ pngquant /home/sk/images/*.png

更改输出文件名后缀

就像我已经说过的,输出文件名与输入名称相同,只是它以 “-fs8.png”, “-or8.png”. 但是,您可以根据需要更改后缀,如下所示。

$ pngquant ostechnix.png --ext linux.png

此命令将压缩 ostechnix.png 文件并将其另存为 ostechnixlinux.png.

如果压缩文件的大小大于原始文件,则跳过保存文件

如果转换后的文件比源文件大,压缩点是什么? 这种转换是不值得的,所以我们可以像下面这样跳过它。

$ pngquant --skip-if-larger ostechnix.png

如果转换后的文件小于原始文件,上述命令只会保存转换后的文件。

Save 转换后的文件在不同的路径

默认情况下,Pngquant 会将输入和输出图像文件保存在同一目录中。 如果要将输出文件保存在其他地方,命令将是:

$ pngquant ostechnix.png --output Documents/output.png

此命令将压缩 ostechnix.png 并将其另存为 输出.png文件 目录。

以自定义质量压缩 PNG 图像

Pngquant 尽可能地压缩图像。 我们还可以手动设置图像的质量。 Pngquant 允许我们在范围内设置图像质量 0 (最坏的)到 100 (完美)使用 分钟最大限度 参数。

以下 example 将最低图像质量设置为 60,将最高质量设置为 80。

$ pngquant --quality=60-80 image.png

如果转换导致质量低于最低质量,则不会保存图像。

剥离图像元数据

图像元数据是一组关于法师的数据。 它包括有关图像的所有信息,例如图像格式、相机设置、DPI、图像的日期和时间、标题和评论、地理位置等等。 请参阅以下文章以了解如何查看图像元数据。

  • 如何在 Linux 上查看图像元数据

如果您没有元数据,您可以使用 pngquant 简单地删除它,如下所示。

$ pngquant --strip image.png

有关更多详细信息,请参阅手册页。

$ man pngquant

建议阅读:

  • Converseen – 一个简单的图形批量图像转换器和大小调整器
  • 3 CLI 图像查看器在终端中显示图像
  • 如何在终端中显示缩略图
  • 如何 Save Linux 命令输出到图像或文本文件
  • Gifski – 一个跨平台的高质量 GIF 编码器
  • Flameshot – 一个简单但功能强大且功能丰富的截图工具

我已经使用 Pngquant 很多年了。 它极大地帮助我将 PNG 图像压缩到 70% 或更多。 如果您正在寻找 PNG 图像优化器和压缩器,Pngquant 可能是一个不错的选择。

资源:

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!