大家好,我是方君宇,我在上传博客文章时,通常需要压缩图片,所以我使用TinyPNG压缩图片,但是TinyPNG需要使用互联网,在网络信号差或者需要压缩隐私图片时,我总是担心无法正常压缩图片。
然后我开始寻找PNG图片压缩的方法,在当Mac平台上压缩 PNG 图像的最佳实践和第三方库有以下几种选择方案:
1、pngquant:色彩量化,有损压缩,支持CLI / C API,最佳选择(压缩可达70-90%)。
2、ImageOptim CLI:多工具合集,有损压缩,支持CLI,调用 pngquant/optipng/zopfli 等。
3、optipng:重排 + 去冗余,无损压缩,支持CLI,通常压缩 5-20%。
4、TinyPNG:色彩分析+压缩,有损压缩,支持HTTP API,效果好,免费有额度限制。
5、NSBitmapImageRep:重新编码,无损压缩,macOS 原生,几乎无压缩。
6、Image I/O (CGImageDestination):写入 PNG,无损压缩,macOS 原生,也几乎无压缩。
测试方案
我尝试使用这个PNG图片(1.9MB)测试所有的方案:
1、pngquant
pngquant默认可以实现 89%的压缩率。
如果把配置参数设置为 0-1,那么最大可以压缩 99.01%。

1.9MB的图片可以被极限的压缩为17KB,压缩率为99.01%。
2、ImageOptim
ImageOptim默认压缩54%的体积,处于中等水平。

在开启最低的压缩配置后。

PNG压缩96.5%的体积,PNG从1.9MB变成了66KB,也是非常高的压缩比。

3、optipng
optipng可以设置过滤器和压缩策略,但是optipng最多只能压缩51.5%。

而且,每层压缩都需要花费较长的时间计算,比前面的方法耗时都严重。
4、TinyPNG
TinyPNG默认压缩 75% 的体积。

5、NSBitmapImageRep
Mac原生的图片压缩API,可以压缩 35% 的图片体积。

6、CGImageDestination
和NSBitmapImageRep一样,都是压缩35%的体积。
测试结果
在所有的方案中:
1、pngquant和ImageOptim压缩比率最夸张,最低可以实现99%和96.5%的压缩率;
2、tinypng压缩率为75%;
3、optipng压缩率为51.5%;
4、NSBitmapImageRep和CGImageDestination压缩率为35%。
TinyPNG作为我工作常用的PNG免费网页压缩图片工具,压缩率已经非常高了。但是无法在本地电脑中使用。
NSBitmapImageRep和CGImageDestination是Mac内置的图片压缩方法,在处理PNG图片时,压缩率最差,但是如果不想要使用第三方包,那么只能考虑通过NSBitmapImageRep和Image I/O (CGImageDestination)压缩图片,这两个方法相比,CGImageDestination新增exr和heic文件的压缩支持,并且不会出现反向压缩(体积小的图片被压缩成大的图片)的场景。
本地压缩图片
如果普通的用户想要在Mac本地使用压缩PNG图片,只能使用含有可视化窗口的ImageOptim。
pngquant、optipng、TinyPNG、NSBitmapImageRep和CGImageDestination都需要一定的技术基础。
1、pngquant需要通过CLI安装以及压缩:
brew install pngquant
pngquant --quality=65-80 --output output.png your_image.png2、optpng也需要CLI安装和配置压缩参数:
brew install optipng
optipng -o7 your_image.png // -o7 表示最强压缩等级
3、TinyPNG需要网络,无法在本地实现图片的压缩工作。
4、NSBitmapImageRep和CGImageDestination都是本地的压缩API,用户无法直接使用。
那么,如果想要实现Mac原生API+PNG压缩,应该怎样选择?
ImageSlim
ImageSlim使用Mac原生的图片压缩API CGImageDestination,支持HEIC、EXR、JPG、JPEG、PNG等图片格式的压缩,但是在PNG压缩方面不如pngquant和ImageOptim。

因为在PNG方面,Mac原生的压缩API没有足够的优势。所以,ImageSlim集成了pngquant,可以在设置中开启pngquant第三方库,实现PNG的压缩,在Mac原生API和第三方库之间来回切换。
Mac原生的压缩API可以在JPG、JPEG、HEIC和EXR等压缩场景下,可以得到很好的支持,pngquant补充了在PNG图片的压缩场景中不足,两者得到了很好的结合。

为什么选择ImageSlim?因为ImageSlim是一款免费、开源的图片压缩工具。可以设置启用/禁用第三方图片压缩引擎,在不开启第三方图片压缩引擎的情况下,默认使用Mac原生的压缩API处理图片,确保兼容性和处理速度。
ImageSlim完全在用户本地的电脑实现图片的压缩,承诺不会将用户的图片上传到第三方服务区,不采集用户的隐私数据。
ImageSlim注重效率、隐私与简洁体验而生的图片压缩工具,使用开发者、设计师、内容创作者与所有希望减小图片体积的人群使用。
ImageSlim GitHub link: https://github.com/fangjunyu1/ImageSlim
Mac App Store: https://apps.apple.com/cn/app/%E8%BD%BB%E5%8E%8B%E5%9B%BE%E7%89%87/id6748277056?mt=12
Mac App Store链接为中国区的链接,可能无法打开,请在GitHub或者Mac App Store中搜索“ImageSlim”进行下载。
相关文章
1、pngquant:https://pngquant.org/
2、ImageOptim:https://imageoptim.com/mac
3、opt PNG:http://optipng.sourceforge.net/
4、tinify:https://tinify.com/developers
5、tinypng:https://tinypng.com/
6、GitHub link: https://github.com/fangjunyu1/ImageSlim
7、Mac App Store link for ImageSlim: https://apps.apple.com/cn/app/%E8%BD%BB%E5%8E%8B%E5%9B%BE%E7%89%87/id6748277056?mt=12
