Pngquant:Linux上一个压缩PNG图像的命令行工具
发布时间:2022-10-07 12:51:24 所属栏目:Linux 来源:
导读: Pngquant是一个自由、开源的跨平台命令行PNG无损压缩工具。其基于一个由C99编写的可移植libimagequant库。它通过将PNG图像转换为更高效的8位格式并保留完整的alpha透明度来显著减小文件尺寸。也许你已经知道了li
|
Pngquant是一个自由、开源的跨平台命令行PNG无损压缩工具。其基于一个由C99编写的可移植libimagequant库。它通过将PNG图像转换为更高效的8位格式并保留完整的alpha透明度来显著减小文件尺寸。也许你已经知道了linux压缩,8位的PNG文件通常比24/32位的PNG文件要小60-80%。使用Pngquant压缩的文件在所有的浏览器和操作系统上都是完全兼容使用的。Pngquant可以一次性压缩一个或多个图像。 特性 Pngquant 具有如下特性: 安装 可以通过多种方式安装Pngquant 从发行版的仓库中安装Pngquant Pngquant在大多数Linux发行版的默认仓库中都可以获取。 在Arch Linux及其衍生发行版上,Pngquant在[Community]仓库中。启用Community仓库,然后就可以使用pacman来安装它: $ 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,可以手动从源码编译并安装该软件。 从源码安装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 (July 2019) 看见了吗?它是最新版本。 使用Cargo安装Pngquant Pngquant也可以通过Cargo包管理器来进行安装。首先,安装Rust。 然后使用git克隆最新版本的Pngquant: $ git clone --recursive https://github.com/kornelski/pngquant.git 最后,像下面这样构建和安装Pngquant。 $ cd pngquant $ sudo cargo build --release 对于其它安装方法,请参考Pngquant的官方安装教程。 使用Pngquant在Linux上压缩PNG图像 Pngquant的使用非常简单并且不需要什么特殊的技巧来使用它。 我在当前目录下有一个"ostechnix.png"的PNG文件。让我给你看一下它的尺寸: $ du -sh ostechnix.png 152K ostechnix.png 如你所见,图像的尺寸是152kb。 压缩一个PNG图像 想在我们使用下面的命令来压缩上面的图像: $ pngquant ostechnix.png 上面的命令会压缩ostechnix.png文件,并将其保存为一个新的叫做"ostechnix-fs8.png"的文件。Pngquant默认会为输入文件名添加一个后缀-or8.png或者-fs8.png来作为输出文件名。这意味着它不会覆写原文件。如果你对压缩比不满意,只需要删除压缩文件然后保留下原来的文件、。 让我们再次检查一下压缩后的文件尺寸: $ du -sh ostechnix-fs8.png 48K ostechnix-fs8.png Compress PNG Images Using Pngquant 看见了吗?Pngquant将152kb的图像减小到了48kb。它完成了一个漂亮的工作。使用任何图像查看器打开该图像。你会发现原始的图像与压缩后的图像几乎看不出任何差别! 压缩时显示状态信息 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也可以转换多个图像。下面的命令将会在当前目录下压缩picture1.png和picture2.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 上面的命令将只会保存比原始文件小的压缩文件。 将转换后的文件保存到不同的路径 Pngquant默认将输出文件保存到原文件所在的路径。如果你想保存文件到其它位置,相应的命令是: $ pngquant ostechnix.png --output Documents/output.png 这个命令将会压缩ostechnix.png并将其保存为Document目录下的output.png文件。 自定义压缩质量 Pngquant会尽可能地压缩文件。同样我们也可以手动设置压缩的质量。Pngquant允许我们通过min和max参数设置图像质量在范围0(最差)到100(完美)之间。 下面的例子设置最差图形质量为60而最佳质量为80: $ pngquant --quality=60-80 image.png 如果转换结果低于最小质量,图像将不会被保存。 剥离图像元数据 图像元数据是关于图像的一系列数据。它包括一个图像的信息,比如图像格式,相机设置,DPI,日期,标题,备注,地理位置等。参考下面的文章来了解如何查看图像的元素局。 如何在Linux上查看图像元数据 如果你不需要元数据,你可以很简单的使用Pngquant移除它: $ pngquant --strip image.png 欲知更多细节,查看man page。 $ man pngquant 我已经使用Pngquant很多年了。它帮助我将PNG文件压缩接近70%的程度,如果你在寻找一个PNG图像优化压缩工具,Pngquant也许会是一个不错的选择。 (编辑:拼字网 - 核心网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

