大家好,我是方君宇,我在上传博客文章时,通常需要压缩图片,所以我使用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.png

2、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

2
0