加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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也许会是一个不错的选择。
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!