最近产品经理一直抱怨图片加载慢,为此客户端开发这边也做了许多努力,比如重定向到CDN,使用webp减小图片大小,使用降低图片压缩质量,更换图片加载框架等等动作。现在讲一下webp格式图片这个方案。
WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。
但WebP是一种有损压缩。相较编码JPEG文件,编码同样质量的WebP文件需要占用更多的计算资源。
桌面版Chrome,Android4.0以上可打开WebP格式。 ——摘自百度百科
Picasso原生支持webp格式图片的加载
理论上说,不需要修改任何代码,只要服务器提供支持,Picasso就能像加载jpg一样加载webp格式的图片。那么现在问题来了
1、如何识别是个下载的文件是不是webp格式。
2、如何将webp解析成bitmap的,会不会出现内存上的问题
带着这两个问题,我仔细阅读了一下Picasso的源码,摸清Picasso加载webp文件的流程。首先看一下下载代码,以okhttp下载器为例