Pngquant是一个自由、开源的跨平台命令行PNG无损压缩工具。其基于一个由C99编写的可移植libimagequant库。它通过将PNG图像转换为更高效的8位格式并保留完整的alpha透明度来显著减小文件尺寸。也许你已经知道了linux压缩,8位的PNG文件通常比24/32位的PNG文件要小60-80%。使用Pngquant压缩的文件在所有的浏览器和操作系统上都是完全兼容使用的。Pngquant可以一次性压缩一个或多个图像。
png格式的图片可以支持全透明,这意味着图片中的任何部分都可以是透明的,而pngquant正是针对png格式进行优化的工具。使用pngquant可以使得png格式的图片大小更小,同时保持透明度。
下面是一个简单的例子:
$ pngquant 128.png
这个命令会将128.png压缩并生成一个新的文件,使得文件大小更小,同时保持了全部的透明度。
由于png格式支持全透明,因此能够创造出更加炫酷、更加帅气的图片效果。pngquant提供了丰富的配置选项,能够帮助开发者定制出更适合自己需求的图片。
例如,我们可以通过以下命令在压缩图片时选择压缩质量:
$ pngquant --quality=80-90 128.png
这个命令会将128.png压缩至80-90%的质量,并且依然保留全部的透明度。
除了提供更加炫酷的效果外,png格式也可以用于制作高质量、高清晰度的图片。pngquant压缩后的图片,能够在保持原始图片质量的基础上,将其大小缩小至最小,这使得pngquant成为高质量、高清晰度图片制作不可或缺的工具。
例如,我们可以通过以下命令,指定输出目录,生成一张高清晰度并具有全部透明度的png图片:
$ pngquant --output=/path/to/output/folder 128.png
pngquant不仅可以处理全透明图片,同时也可以处理一部分透明的图片,即带透明背景的png图片。
下面是一个样例,假设我们有一个带有透明背景的png图片,我们想要压缩它并将其输出至输出目录:
$ pngquant --output=/path/to/output/folder --skip-if-larger file-with-transparent-background.png
这个命令会将file-with-transparent-background.png输出至指定目录,同时保留图片透明度以及不变的高清晰度。
如果你需要一些透明的图片素材,可以在网上寻找或是自己制作。当你找到一张png透明的图片时,你可以轻松压缩它并将其大小缩小。
下面是一个例子,假设我们想要下载一张透明的png图片,并将其压缩至可接受的大小:
$ pngquant --posterize 4 --quality 65-80 /path/to/transparent.png
这个命令会将透明的png图片压缩并生成一个新的文件。你可以自定义命令中的选项以满足自己的需求。
作为一款免费的开源工具,pngquant可以为你节省压缩图片的成本。在它的帮助下,开发者可以轻松压缩和优化png格式的图片,提高网站或应用的性能,并且不用为此支付任何费用。
以下是一个例子,假设我们需要将一张大型的png图片缩减至较小的大小:
$ pngquant --ext .png --force colors=256 64x64.png
这个命令会将64x64.png文件缩小至256色,并且保留全部透明度。
如果你需要大量透明或半透明的图片素材,你可以下载一些免费素材库,这些库中经过优化的png图片可以轻松应对你的需求。
以下是一个简单的例子,假设我们想要下载一些免费的半透明图标素材,并使用pngquant优化它们:
$ pngquant --quality=50 /path/to/tranparent/icon.png
这个命令会将icon.png优化并压缩至50%的质量,并且依然保留全部的透明度。
pngquant不仅可以用于普通的图片压缩,同时也可以用于图标、标志和徽章等制作。以下是一个例子,假设我们需要制作一个png格式的公交站点图标:
$ pngquant --force 64x64.png
这个命令会将64x64.png文件压缩并生成一个新的文件,使得该文件适合用作公交站点的图标。
除了用于公交站点图标,pngquant同样也可以处理其他的图标、标志和徽章等素材。以下是一个例子,假设我们需要压缩一张快手应用的图标:
$ pngquant /path/to/kuaishou.png
这个命令会将kuaishou.png压缩并生成一张新的图片文件,使得它更适合用作应用图标。
对于游戏开发者或是应用程序开发者,pngquant同样提供了优秀的优化方案,这可以帮助开发者在游戏或应用开发过程中减少图片大小,从而提高游戏或应用的性能。
例如,我们可以使用以下命令来压缩一张王者荣耀应用的图标:
$ pngquant --ext .png --force --quality 80-90 /path/to/wzry/icon.png
这个命令会将icon.png文件压缩至80-90%的质量,并且生成一个新的png格式文件。
官网:pngquant — lossy PNG compressor
GitHub源码:GitHub - kornelski/pngquant: Lossy PNG compressor — pngquant command based on libimagequant library
forWindows:https://pngquant.org/pngquant-windows.zip
forMac:https://pngquant.org/pngquant.tar.bz2
下载地址:VS2019编译zlib及libPng库_zlib编译资源-CSDN文库
下载后,将编译后的lib文件及头文件准备好,编译pngquant源码,共需要如下的文件:
下载地址:windows 实现 getopt 调用(getopt.h和getopt.c)
由于最新的源码使用的是Rust编写,pngquant-2.x为C语言编写。下载时记得把里面的lib库文件也全部下载下来。下载源码版本要统一。
下载地址:GitHub - kornelski/pngquant at 2.x
导入文件目录结构如下图:
开始编译,会提示错误,主要是因为linux下c++标准与windows下C++标准不同造成的。此处需要修改这个错误。错误太多,这里不再一一列举。感兴趣的可以下载可以编译的源码。
源码下载地址:VC++2019编译pngquant源码