TinyPNG:优化图片体积的利器

TinyPNG是一个优秀的图片压缩服务,通过它,你可以轻松地减少图片的加载体积。例如本文的头图(来源于TinyPNG官网首页,通过技术手段对该页面元素重排后屏幕截图获得),压缩前大小为259045字节,压缩后仅79658字节,为原来的30.75%。(数据来自TinyPNG)

上次讲到过可以通过引入lazyload.js来提升图片加载时的用户体验,但是并没有对速度起到实质性的优化,且门槛较高(需要引入js并进行配置,部分读者可能知识储备不足)。但使用TinyPNG压缩图片则是很简单的事情,进入官网上传即可。图片的尺寸得到了优化,加载的速度就能够得以提升。按照本文头图的压缩率,使用压缩后的图片就能在原先加载一张图片的时间里加载三张图片,对速度的提升是显著的。(当然,不一定每张图片都能够有如此高的压缩率)

更加令人振奋的是,TinyPNG的图片压缩对图片质量的损害极低。我用肉眼对比压缩前后,没有找到明显的模糊/失真,十分适合拿来预处理博客上引用的图片。

于是本文所有引用的图片均已经过TinyPNG预处理。


打开TinyPNG官网,可以看到非常简明的操作界面:

TinyPNG工具官网

把png文件或者jpeg文件丢进去就好了,支持一次性上传多张,会全部压缩好以后生成一个zip统一下载,也可以自己一张张下。

批量压缩

不过,毕竟是免费的服务,不仅对单张上传图片的大小有5MB的限制,而且一次性最多允许上传20张。如果需要处理更多,则需要刷新页面再来。

我压缩图片的起因是最近给博客增加了雀魂表情包,必须控制加载体积。那套表情包一共有一百五十来张图片,很难想象一点一点上传多么难熬。而且因为网络原因,常常出现上传20张,实际只处理了10张不到的情况。

所幸官方提供了api,下次有类似需求时可以不必如此大费周折了。

点击导航栏上的DEVELOPER API转到api接入申请页面,很快就能生成一个自己的key,官方的文档也很全,甚至还有WordPress插件(考虑闲着的时候写个Typecho的?我自己没需求,果然还是算了)。不过,仍然有月上传量500张的限制。

DEVELOPER API

钞能力即可突破限制,但是我没有[heimu](疯狂暗示)[/heimu],500张/月基本够用。

直接POST首页的接口也是一种思路,得到错误信息如下:

{"error":"unauthorized","message":"Please use api.tinify.com."}

看来没那么简单?

答案是否定的,就那么简单。

模拟请求成功

过程略。

综上,TinyPNG是一个优秀的图片压缩服务。满足日常需求使用官方api足矣,当然他们主页使用的接口也极容易突破,可作为免key的api接口使用,有兴趣者可以自行研究。

最后修改:2023 年 11 月 26 日 03 : 53 PM
欢迎投食喵 ~

发表评论