Pngquant是一个免费和开源的跨平台命令行有损PNG压缩工具。它基于用C99编写的可移植libimagequant库。通过将PNG图像转换为更高效的8位PNG格式并保留完整的alpha透明度,可以显着减小文件大小。您可能已经知道,8位PNG文件通常比24/32位PNG文件小60%到80%。使用Pngquant压缩的图像与所有网络浏览器和操作系统完全兼容。Pngquant可以一次压缩一个或多个图像。特点Pngquant具有以下特点:支持批量转换多个PNG文件。高质量的调色板生成。使用MedianCut量化算法优化图像。可以轻松地与shell脚本、GUI和服务器端软件集成。将图像转换为所需质量,跳过无法转换为所需质量的图像。多核支持和IntelSSE优化。可以通过多种方式安装Pngquant。从您的发行版代码库安装PngquantPngquant存在于大多数Linux发行版的默认代码库中。在ArchLinux及其变体上,Pngquant存在于[Community]存储库中。要启用社区存储库,请按如下方式使用Pacman安装它:$sudopacman-Spngquant在Debian、Ubuntu或LinuxMint上:$sudoaptinstallpngquant在Ubuntu系统上,您需要启用[Universe]存储库才能安装Pngquant。要启用universe存储库,请执行:$sudoadd-apt-repositoryuniverse在Fedora上:$sudodnfinstallpngquant在openSUSE上:$sudozypperinstallpngquant在CentOS上:$sudoyuminstalllepel-release$sudoyuminstallpngquant检查已安装的Pngquant版本:$pngquant-V2.5.0(June2015)版本默认代码库中可用的Pngquant可能很旧。如果您想要最新版本,请从源代码编译并手动安装,如下所示。从源代码安装Pngquant首先安装必要的依赖项。在Debian和Ubuntu上:$sudoaptinstallgitgcccmakelibpng-devpkg-config在CentOS和Fedora上:$sudoyuinstallgitlibpng-develgcccmake接下来,使用gitclone克隆最新版本的Pngquant:$gitclone--recursivehttps://github.com/科内尔斯基/pngquant。上面的git命令将下载PngquantGitHub存储库的内容,并将其保存在当前工作目录中名为“pngquant”的文件夹中。切换到Pngquant目录:$cdpngquant最后,运行以下命令编译和安装Pngquant:$make$sudomakeinstallPngquant将默认安装在/usr/local/bin位置。如果你想将它安装在另一个目录中,运行:$./configure--prefix=dir&&makereplace"dir"withyourpath。您需要先运行该命令,然后运行“sudomakeinstall”命令。查看Pngquant版本:$pngquant-V2.12.5(July2019)看到了吗?这是最新版本。使用Cargo安装Pngquant也可以使用Cargo包管理器安装Pngquant。首先按照以下链接中的说明安装Rust。(https://www.ostechnix.com/install-rust-programming-language-in-linux/)用gitclone克隆最新版本的Pngquant:$gitclone--recursivehttps://github.com/kornelski/pngquant.git最终使用Cargo构建安装Pngquant如下:$cdpngquant$sudocargobuild--release其他安装方式请参考Pngquant官方安装页面(https://pngquant.org/install.html).使用Pngquant在Linux上压缩PNG图像使用Pngquant很简单,不需要任何特殊技能即可使用它。我在当前目录中有一个名为“ostechnix.png”的PNG图像文件。让我告诉你它的大小。$du-shostechnix.png152Kostechnix.png如您所见,图像大小为152k。压缩PNG图像现在让我们使用以下命令压缩上面的图像:$pngquantostechnix.png上面的命令将压缩ostechnix.png文件并将其另存为名为“ostechnix-fs8.png”的新文件。默认情况下,Pngquant将使用与输入文件名相同的输出文件名,并在末尾添加后缀-or8.png或-fs8.png。这意味着它不会覆盖源文件。如果您对压缩率不满意,只需删除压缩文件并保留原始压缩文件即可。再次检查压缩图片文件的大小:$du-shostechnix-fs8.png48Kostechnix-fs8.png使用Pngquant压缩PNG图片看到了吗?Pngquant已将图像大小从152k减小到48k。确实做得好。使用任何图像查看器打开图像并进行比较。原始图像和压缩图像之间的质量差异很小。两个图像看起来几乎一样!压缩时显示状态消息默认情况下,Pngquant不显示压缩图像时幕后发生的情况。如果要查看状态消息,请使用此命令:$pngquantostechnix.png--verboseostechnix.png:conservingmemoryread152KBfilecorrectedimagefromgamma2.2tosRGBgammamamadehistogram...1854colorsfoundselectingcolors...4%selectingcolors...25%selectingcolors...28%selectingcolors...49%selectingcolors...69%selectingcolors...90%selectingcolors...100%movingcolormaptowardslocalminimumeeliminatedtopaquetRNS-chunkentries...61entriestransparentmappedimagetonewcolors...MSE=0.055(Q=99)writing256-colorimageasquostechnix-fs8.pngNoederrors你现在会看到1Progresswhilecompactionisprogress。压缩多个PNG图像Pngquant还可以转换多个图像。以下命令将压缩当前工作目录中的picture1.png和picture2.png。$pngquantpicture1.pngpicture2.png此外,我们可以移动目录中的所有文件并一次压缩它们。例如,要转换名为“/home/sk/images”的文件夹中的所有图像,运行:$pngquant/home/sk/images/*.png更改输出文件名后缀如上,输出文件名与输入名称相同,但结束使用“-fs8.png”和“-or8.png”。但是,您可以根据需要更改后缀,如下所示。$pngquantostechnix.png--extlinux.png此命令将压缩ostechnix.png文件并将其保存为ostechnixlinux.png。如果压缩文件的大小大于原始文件,则跳过保存文件如果转换后的文件大于源文件,压缩有什么意义?转换不值得,所以我们跳过它,如下所示。$pngquant--skip-if-largerostechnix.png如果转换后的文件小于原始文件,上述命令只会保存转换后的文件。将转换后的文件保存在不同的路径默认情况下,Pngquant会将输入和输出图像文件保存在同一目录中。如果您想将输出文件保存在别处,命令为:$pngquantostechnix.png--outputDocuments/output.png此命令将压缩ostechnix.png并将其作为output.png保存在Documents目录中。以自定义质量压缩图像Pngquant尽可能地压缩图像。我们也可以手动设置图像质量。Pngquant允许我们使用两个参数min和max在0(最差)到100(完美)的范围内设置图像质量。以下示例将最低图像质量设置为60,将最高质量设置为80。$pngquantostechnix.png--outputDocuments/output.png如果转换结果低于最低质量,请不要保存图像。剥离图像元数据图像元数据是一组关于图像的数据。它包含了关于图像的所有信息,例如图像格式、相机设置、DPI、图像的日期和时间、标题和注释以及地理位置等。如果您不需要元数据,您可以使用Pngquant来像这样剥离它:$pngquant--stripimage.png有关详细信息,请参阅手册页。$manpngquant原标题:Pngquant–ACommand-lineUtilityToCompressPNGImagesOnLinux,作者:SK
