本文介绍在Linux操作系统下安装Pngquant的三种方法,即从存储库、从源代码及使用Cargo安装,可用在Arch Linux、Debian、Ubuntu、Linux Mint、Fedora、openSUSE、CentOS发行版上,最后附上使用Pngquant的基本方法,它用于在Linux命令行下压缩PNG图像。
简介 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在大多数Linux发行版的默认存储库中都可用。 在Arch Linux及其版本上,Pngquant可以在[Community]存储库中找到,启用社区存储库并使用Pacman安装它,如下所示: $ sudo pacman -S pngquant 在Debian、Ubuntu、Linux Mint上: $ sudo apt install pngquant 在Ubuntu系统上,你需要启用[Universe]存储库来安装Pngquant,参考Ubuntu存储库的定义及启用和禁用Ubuntu存储库的方法。 要启用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 注意:默认存储库中可用的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克隆最新版本的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 注:使用从源代码安装Pngquant的安装比较新。
使用Cargo安装Pngquant 也可以使用Cargo包管理器安装Pngquant,首先安装Rust,参考在Linux操作系统中安装Rust编程语言。 git克隆最新版本的Pngquant: $ git clone --recursive https://github.com/kornelski/pngquant.git 最后,使用Cargo构建和安装Pngquant,如下所示: $ cd pngquant $ sudo cargo build --release 至此,安装步骤完成。
使用Pngquant在Linux下压缩PNG图像 Pngquant的使用很简单,并且不需要任何特殊技能来使用它。 我在当前目录中有名为“ostechnix.png”的PNG图像文件: $ du -sh ostechnix.png 152K ostechnix.png 如你所见,图像大小为152k。 1、压缩PNG图像 现在让我们使用命令压缩上面的图像: $ pngquant ostechnix.png 上面的命令将压缩ostechnix.png文件并将其保存为名为“ostechnix-fs8.png”的新文件,默认情况下,Pngquant将使用与输入文件名相同的输出文件名,最后使用suffix -or8.png或-fs8.png,这意味着它不会覆盖源文件,如果你对压缩率不满意,只需删除压缩文件并保留原始压缩文件即可。 让我们再次检查压缩的图像文件大小: $ du -sh ostechnix-fs8.png 48K ostechnix-fs8.png
看到上图了吗?Pngquant将152k尺寸的图像缩小到48k,使用任何图像查看器打开图像并进行比较,原始图像和压缩图像之间的质量差异不大,两个图像看起来几乎相同。 2、压缩时显示状态消息 默认情况下,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. 现在,你将看到压缩发生时的进度。 3、压缩多个PNG图像 Pngquant还可以转换多个图像,以下命令将压缩当前工作目录中的picture1.png和picture2.png: $ pngquant picture1.png picture2.png 此外,我们可以移动目录中的所有文件并一次压缩它们,例如,要转换名为“/home/sk/images”的文件夹中的所有图像,请运行: $ pngquant /home/sk/images/*.png 4、更改输出文件名后缀 就像我已经说过的那样,输出文件名与输入名称相同,只是它以“-fs8.png”、“ - or8.png”结尾,但是,你可以根据需要更改后缀: $ pngquant ostechnix.png --ext linux.png 此命令将压缩ostechnix.png文件并将其保存为ostechnixlinux.png。 5、如果压缩文件的大小大于原始文件,则跳过保存文件 如果转换后的文件大于源文件,那么压缩点是什么?这种转换不值得,所以我们可以像下面这样跳过它: $ pngquant --skip-if-larger ostechnix.png 上面的命令只会保存转换后的文件,如果它小于原始文件。 6、保存转换后的文件在不同的路径 默认情况下,Pngquant会将输入和输出图像文件保存在同一目录中,如果要将输出文件保存在其他位置,则命令为: $ pngquant ostechnix.png --output Documents/output.png 此命令将压缩ostechnix.png并将其保存为Documents目录中的output.png。 7、以自定义质量压缩图像 我们还可以手动设置图像的质量,Pngquant允许我们使用最小和最大参数将图像质量设置在0(最差)到100(完美)的范围内。 以下示例将最低图像质量设置为60,将最高质量设置为80: $ pngquant --quality=60-80 image.png 如果转换导致质量低于最低质量,则不会保存图像。 8、剥离图像元数据 参考:使用ImageMagick、file命令、Exif工具在Linux上查看图像元数据。 如果你没有元数据,可以使用下面的pngquant简单地删除它: $ pngquant --strip image.png 有关详细信息,请参阅手册页: $ man pngquant
总结 我已经在Linux系统下使用Pngquant多年了,它极大地帮助我将PNG图像压缩到70%或更多,如果你正在寻找PNG图像优化器和压缩器,Pngquant是一个不错的选择。
相关主题 |