一、概述
在这一整个关于图片压缩的知识梳理过程中,我们介绍了四种图片格式的基本原理、使用方式、优化方式,相信大家已经对他们有了一个基本的认识。
那么在实际的开发过程当中,我们应当如何选择合适的图片格式呢?Google
提出了它们的建议,我们可以以此为参考,在具体的场景中选择合适的图片格式。
二、如何选择合适的图片格式
对于前面介绍的四种图片格式(VectorDrawable/WebP/PNG/JPG
),这几种图片的选择标准可以用下面这幅图来表示,整个选择的优先级为:
VD > WebP > PNG > JPG
如果大家有阅读前面一系列的文章,那么应该会对这些选取的条件有一个基本的认识,下面就来简要解释一下每个判断条件所设置的含义:
Can the image be a VectorDrawable
兼容性问题:
App
本身需要支持VectorDrawable
,对于Android 5.0
以上是默认支持的,而对于这5.0
以下的应用,则需要引入support
包的支持。图片本身的问题:
VectorDrawable
适用于那些小而简单的图片,如果图片很大或者很复杂,那么由于栅格化所带来的性能损耗有可能会导致最后得不偿失。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
。
当我们使用PNG
和JPG
时,应当尽可能在用户没有察觉的情况下,采用之前提到的优化手段,对这些资源进行压缩。