在这一整个关于图片压缩的知识梳理过程当中,咱们介绍了四种图片格式的基本原理、使用方式、优化方式,相信你们已经对他们有了一个基本的认识。bash
那么在实际的开发过程中,咱们应当如何选择合适的图片格式呢?Google
提出了它们的建议,咱们能够以此为参考,在具体的场景中选择合适的图片格式。性能
对于前面介绍的四种图片格式(VectorDrawable/WebP/PNG/JPG
),这几种图片的选择标准能够用下面这幅图来表示,整个选择的优先级为:优化
VD > WebP > PNG > JPG
复制代码
若是你们有阅读前面一系列的文章,那么应该会对这些选取的条件有一个基本的认识,下面就来简要解释一下每一个判断条件所设置的含义:spa
Can the image be a VectorDrawable
code
兼容性问题:App
自己须要支持VectorDrawable
,对于Android 5.0
以上是默认支持的,而对于这5.0
如下的应用,则须要引入support
包的支持。图片
图片自己的问题:VectorDrawable
适用于那些小而简单的图片,若是图片很大或者很复杂,那么因为栅格化所带来的性能损耗有可能会致使最后得不偿失。ip
Do you support WebP
这里主要涉及到的是兼容性问题,对于Android 4.3
以上,默认支持WebP
。而若是是该Android
版本之下的平台,那么须要引入so
,而引入so
就有可能会增大APK
的大小,所以,须要在这之间进行权衡。资源
Does it need transparency
PNG
和JPG
的其中一个差别就是PNG
支持透明度,若是须要支持带透明度的图片,那么就必须使用PNG
。开发
Is it simple or complex
在不须要支持透明度的状况下,若是图片较为简单,那么咱们也可使用PNG
,由于它对于简单图像的压缩效果更好。而若是图片很复杂,那么PNG
压缩效果就不如JPG
,这时候,咱们就能够采用JPG
。it
当咱们使用PNG
和JPG
时,应当尽量在用户没有察觉的状况下,采用以前提到的优化手段,对这些资源进行压缩。