本文介绍在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、剥离图像元数据

如果你没有元数据,可以使用下面的pngquant简单地删除它:

$ pngquant --strip image.png

有关详细信息,请参阅手册页:

$ man pngquant

总结

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

相关主题

linux存储安装教程,在Linux下安装Pngquant的三种方法:从存储库,源代码及使用Cargo安装...相关推荐

  1. mysql数据库最后一步卡住了_[数据库]解决MySQL安装到最后一步未响应的三种方法...

    [数据库]解决MySQL安装到最后一步未响应的三种方法 0 2018-07-13 01:01:27 这种情况一般是你以前安装过MySQL数据库服务项被占用了. 解决方法: 方法一:安装MySQL的时候 ...

  2. 装mysql最后一步没响应_解决MySQL安装到最后一步未响应的三种方法

    这种情况一般是你以前安装过MySQL数据库服务项被占用了. 解决方法: 方法一:安装MySQL的时候在这一步时它默认的服务名是"MySQL" 只需要把这个名字改了就可以了.可以把默 ...

  3. linux下没有yum命令,linux下配置yum的三种方法与yum命令详解

    (一).制作YUM本地源: YUM简介: YUM是Yellow dog Updater Modified的简称,yum是软件的仓库,它可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的 ...

  4. linux ie8找不到,ie浏览器不见了怎么办 三种方法搞定【图文教程】

    ie浏览器是我们平时常用来进行上网的工具之一,我们可以通过ie浏览器看视频.新闻,还可以查阅资料等等.但有时候,我们会发现桌面上的ie浏览器突然不见了,给我们带来不小的麻烦.那么遇到这种情况,我们要怎 ...

  5. linux 去掉硬盘windows10,Win10禁用自动挂载硬盘的三种方法

    当我们在PC上装上一块硬盘时,Windows系统能够自动识别该硬盘并分配一个盘符(驱动器号),这实际上是Windows系统能自动挂载硬盘,而不是像Linux系统那样还需要运行命令手动挂载磁盘.这在方便 ...

  6. linux退出windows域,删除Windows AD域控制器的三种方法

    一.域控可以正常工作 1.删除辅助域控:单击"开始",单击"运行",然后键入以下命令: dcpromo /forceremoval然后按提示操作. 2.删除主域 ...

  7. 【Linux成长之路】CentOS7修改主机名的三种方法

    目录 三种定义的主机名 hostnamectl的命令行工具 临时修改主机名 永久修改主机名 三种定义的主机名 在CentOS7中,有三种定义的主机名: 静态的(Static hostname):&qu ...

  8. Qgis教程5:添加精美底图的三种方法

  9. QGIS教程-4:添加精美底图的三种方法

最新文章

  1. Intel发布FPGA
  2. 正向代理和反向代理??
  3. 使用grep过滤make的输出内容
  4. 最新的B站弹幕和评论爬虫,你们要的冰冰来啦!
  5. Cocoon的sitemap详解
  6. Android入门(十二)SQLite事务、升级数据库
  7. redis的hash操作在集中式session中的应用
  8. mysql ——读写分离
  9. 【Cloud Foundry 应用开发大赛】“八卦街”图片采集应用
  10. 用JavaScript语言制作简易版轮播图
  11. fastreport java 集成_报表生成器配置FastReport.Net环境
  12. jspx页面用到的一些在值表达式中的运算符含义
  13. mac os无法登录appstore的解决方法
  14. git里面的文件怎么删不掉_git如何删除已经提交的文件夹
  15. Tikhonov regularization 吉洪诺夫正则化(L2正则化)
  16. android 向上飘的字符,Android如何自定义View实现抖音飘动红心效果
  17. 离散数学笔记(一)【集合、命题逻辑 、谓词逻辑】
  18. ASP.NET的优点
  19. 恒星物联-河道水系监测系统方案 水质监测
  20. 所有帖子的 分类 总结

热门文章

  1. 高并发限流:8个步骤快速解决高并发问题!
  2. KPCA、KLPP及两者结合改进的特征提取特征降维算法
  3. JavaScript 数组中的 indexOf 方法详解
  4. 成功解决VMware虚拟机中的please remove the installation medium then press enter
  5. 理财小白日记(1)-无脑回忆录
  6. 用人工智能打造神奇宝贝图鉴
  7. R:ggplot2(16),第8章 精雕细琢(1)
  8. 小白如何通过按钮进行cocoscreator场景的切换
  9. QGraphicsItem图元坐标和在场景中的坐标(六)
  10. Parallel PSO Using C++ Thread(基于c++多线程的并行粒子群优化算法)