pngquant是一个命令行实用程序和一个用于PNG图像有损压缩的库,本文就介绍安装及使用pngquant在Linux命令行上压缩PNG图像,pngquant可以将PNG图像的大小减少多达70%,同时保持完整的Alpha透明度。生成的图像与所有Web浏览器和操作系统兼容。

在Linux上安装pngquant

pngquant可以从你的操作系统上游存储库安装,也可以从源代码编译,从源代码构建pngquant的优点是,可以获得最新版本,而不是系统存储库中可用的软件包。

1、在CentOS/Fedora上安装pngquant

首先安装所需的依赖项:

sudo yum -y install git libpng-devel gcc cmake

然后从git克隆pngquant项目:

git clone --recursive https://github.com/kornelski/pngquant.git

运行./configure并make以在当前目录中生成pngquant可执行文件:

cd pngquant

./configure

make

如果你想在系统范围内安装它,请运行以下命令:

sudo make install

二进制文件将被复制到/usr/local/bin/pngquant:

$ pngquant --version

2.12.2 (November 2018)

2、在Ubuntu/Debian上安装pngquant

安装所需的依赖项:

sudo apt-get update

sudo apt-get install -y git gcc cmake libpng-dev pkg-config

克隆pongquant

git clone --recursive https://github.com/kornelski/pngquant.git

通过运行以下命令安装它:

cd pngquant

./configure

make

sudo make install

3、在Arch Linux/Manjaro上安装pngquant

可以使用pacman命令在Arch Linux上安装最新版本的pngquant:

sudo pacman -S pngquant

4、在Linux CLI上使用pngquant

可以使用--help选项打印所有pngquant选项:

$ pngquant --help

示例1:用pngquant压缩PNG图像

在我的笔记本电脑中,我有一个3.9MB的PNG图像,我将用pngquant压缩:

$ du -sh wallpaper-01.png

3.9M    wallpaper-01.png

使用pngquant压缩图像的基本示例是:

$ pngquant --force --quality=40-100 --strip --skip-if-larger \

--verbose wallpaper-01.png

wallpaper-01.png:

read 3893KB file

used gAMA and cHRM chunks to transform image to sRGB colorspace

made histogram…231676 colors found

selecting colors…14%

selecting colors…28%

selecting colors…100%

moving colormap towards local minimum

eliminated opaque tRNS-chunk entries…0 entries transparent

mapped image to new colors…MSE=6.201 (Q=79)

writing 256-color image as wallpaper-01-fs8.png

Quantized 1 image.

检查目标文件的大小:

$ du -sh wallpaper-01-fs8.png

1.4M    wallpaper-01-fs8.png

你可以看到大小是1.4MB,减少了2.5MB。

如果要使用受限文件覆盖原始文件,请使用--output file选项:

$ pngquant --force --quality=40-100 --strip --skip-if-larger \

--verbose --output wallpaper-01.png  wallpaper-01.png

wallpaper-01.png:

read 3893KB file

used gAMA and cHRM chunks to transform image to sRGB colorspace

made histogram…231676 colors found

selecting colors…6%

selecting colors…12%

selecting colors…50%

selecting colors…87%

selecting colors…100%

moving colormap towards local minimum

eliminated opaque tRNS-chunk entries…0 entries transparent

mapped image to new colors…MSE=6.111 (Q=79)

writing 256-color image as wallpaper-01.png

Quantized 1 image.

确认:

$ du -sh wallpaper-01.png

1.4M    wallpaper-01.png

示例2:压缩多个PNG图像

如果在当前文件夹中有多个PNG图像,则可以使用bash for循环来压缩所有项目:

for i in *.png; do

pngquant --force --quality=40-100 --strip --skip-if-larger \

--verbose $i

done

示例3:搜索目录中的所有PNG图像并进行压缩

你还可以使用Linux find命令查找指定目录中的所有PNG图像(参考:使用find、locate、which、whereis命令在Linux下搜索文件和文件夹),然后压缩:

find /mysite/wp-content/uploads/ -type f -iname '*.png' -exec \

pngquant --force --quality=40-100 --skip-if-larger --strip --verbose {} --output {} \;

将/mysite/wp-content/uploads/替换为递归搜索的路径。

相关主题

linux 下载了个图形软件 解压后 jar png,安装及使用pngquant在Linux命令行上压缩PNG图像...相关推荐

  1. 在linux中怎么编程软件下载,linux系统下载软件解压后怎么安装

    用户提问 linux系统里安装软件问题,可是怎么就是安装不了,请高手指教,最好详细点带个例子!还有,安装路径最好说明,谢谢了!满意肯定加分! 推荐答案 现在一般是使用 RPM ,YUM 和 APT 来 ...

  2. 3.在slave1机器下载3个安装包解压后,复制给master机器

    务必:从机器slave1或者slave2中下载下面三个安装包 一.在slave1机器上下载下面三个安装包 jdk-8u111-Linux-x64.tar.gz 下载地址:http://www.orac ...

  3. ubuntu下rar文件解压后文件名乱码的解决方案

    在linux解压rar文件,通常使用的命令是 rar e a.rar 但是由于编码的缘故,在windows下打包的的中文文件,解压后时候乱码,提示为无效的编码格式,由于windows是gbk的编码格式 ...

  4. linux图形界面解压rar文件夹,压缩与解压

    出自Linux Wiki 提示:此文已超过 5 年(1880 天)未更新,如发现内容过时或有误,欢迎改进:) 本文介绍Linux环境中处理rar.zip.gz.bz2.tar等常见压缩/归档文件的方法 ...

  5. 学习用WinRAR解压缩软件解压下载的PPStream压缩包

    工欲善其事,必先利其器.要想安装PPStream我们就必须先将下载下来的PPStream压缩包解压或者直接用解压缩软件打开压缩包, 这时我们就想到用WinRAR来解决此问题(也可以用Windows自带 ...

  6. window解压缩软件解压tar.gz文件遇到的坑

    网上下载了一个apache-shardingsphere-4.1.1-sharding-proxy-bin.tar.gz分表分库压缩包,用360解压缩软件解压,发现里面lib文件夹下的jar文件缺失. ...

  7. php安装包解压后,ps下载后怎么解压安装

    ps下载后怎么解压安装? 1.将下载下来的安装包进行解压.用解压缩软件解压即可. 2.不一会儿,解压完成,出现一个安装包的文件夹.过程如图示: 3.打开文件夹,找到其中的安装用到的文件夹.如图所示: ...

  8. jdk安装包解压后如何安装(jdk下载安装)

    1.找到"解压到"按钮,一般解压到压缩包所在的位置就行,点"确定"2.解压后,找到这个文件夹,并在里面找到"**.setup"的文件(一般文 ...

  9. linux tar.xz 解压命令,Linux下.tar.xz文件的解压教程详解

    前言 对于xz这个压缩相信很多人陌生,但xz是绝大数linux默认就带的一个压缩工具,xz格式比7z还要小. 最近在下载某个源码包的时候遇到的这种压缩格式,乘此机会分享一下xz的压缩与解压方法. 安装 ...

最新文章

  1. 腾讯面试题:创建索引时,你会怎么考虑呢?(看完你就能和面试官谈人生了)
  2. 基于移动机器人的拣货系统研究进展
  3. 【hdoj_2079】选课时间(母函数)
  4. SAP Spartacus OccEndpointsService getUrl方法的实现原理
  5. F问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分复用FDM才使用载波。以太网有没有使用频分复用?...
  6. 二维声波方程的有限差分法数值模拟
  7. 【英语学习】【WOTD】billion 释义/词源/示例
  8. 如何使用MongoDB+Springboot实现分布式ID?
  9. Android自定义ScrollBar,android自定义View之垂直的滚动条
  10. WebRTC源码研究(37)WebRTC实现共享远程桌面
  11. AliDDNS 阿里云动态域名服务 实用工具
  12. ubuntu18.04 虚拟机重启后变成只读模式,怎么恢复?
  13. 【IoT】产品设计:OEM、ODM、EMS 的区别是什么?
  14. 视觉数据集是基于物体和风景标记的巨大的图像库
  15. java linest_Java STLineSpacingRule類代碼示例
  16. html数字拼图游戏,JavaScript_JS写的数字拼图小游戏代码[学习参考],复制代码 代码如下:html - phpStudy...
  17. 将Maven项目直接用Tomcat运行
  18. 最近很火的盲盒交友源码v1.1.5 带教程
  19. Centos7安装jdk1.8和tomcat9
  20. android usb 摄像头 分辨率,Android 驱动USB摄像头

热门文章

  1. 期末考试+竞赛班选拔考试
  2. HTML5 Geolocation API
  3. 你好,请问如何使用jass语言实现对单位造成属性伤害
  4. android os 怎么删除,安卓自带软件怎么删?一键删除系统软件
  5. 日赚100+兼职项目介绍
  6. Android默认优先使用WPS打开PDF文档
  7. 小米面试官:说说Spring源码里面的Bean的生命周期!
  8. Java实现GeoHash算法
  9. 菜鸟Django--登录
  10. 4070: [Apio2015]雅加达的摩天楼