目前移动端Android平台原生支持的图片格式有:JPEG,PNG,GIF,BMP,WebP。但是Android应用开发中能够使用的编码格式只有其中三种:JPEG,PNG,WebP,图片格式可以通过查看BItmap类的CompressFormat枚举类来确定。如果要在应用层使用GIF格式图片,则需要自己引入第三方函数库支持。
1.图片格式
1.1JPEG
JPEG是一种广泛使用的有损压缩图像标准格式,它不支持透明和多帧动画,一般摄影类作品最终都是以JPEG格式展示。通过控制压缩比来调整图片的大小。
1.2PNG
PNG是一种无损压缩图片格式,它支持完整的透明通道,从图像处理领域来讲,JPEG只有RGB三个通道,而PNG有ARGB四个通道。由于是无损压缩,因此PNG图片占用空间一般比较大,会无形中增加APP大小,APP瘦身的时候一般要对PNG图片进行处理以减少其占用的体积。
1.3GIF
GIF是一种古老的图片格式,1987年出现,特点是支持多帧动画。
1.4Webp
相比于前面几种格式,WebP是最晚出现的,由谷歌在2010年发布,它支持有损压缩和无损压缩,支持完整的透明通道,也支持多帧动画,是一种比较理想的图片格式。微信,微博,淘宝等都用这个图片格式。在既保证图片质量又限制图片大小的需求下,WebP是首选。
2.图片压缩
2.1无损压缩ImageOptim
ImageOptim是一个无损的压缩工具,它通过优化PNG压缩参数,移除冗余元数据以及非必须的颜色配置文件等方式,在不牺牲图片质量的前提下,既减少了PNG图片占用的空间,又提高了加载速度。
2.2有损压缩ImageAlpha
ImageAlpha是ImageOptim作者开发的一个有损的PNG压缩工具,相比较而言,图片大小得到极大的降低,图片质量会受到一定程度的影响,通过该工具压缩的图片的经过设计师的检视才能最终上线,否则会影响整个APP的视觉效果。
2.3有损压缩TinyPNG
TinyPNG也是比较知名的有损PNG压缩工具,它以Web站点的形式提供,没有独立的APP安装包。
2.4PNG/JPEG转换为WebP
WebP转换工具可以选择智图和iSparta等,根据Google的测试,无损压缩后的WebP大小比PNG文件少了45%,即使这些PNG文件经过其他压缩工具压缩后,转换为WebP后大小依然可以减少28%。
2.5尽量使用NinePatch格式的PNG图
.9.png图片格式简称为NinePatch图,本质上依然是PNG格式的图片,它是针对Android平台的一种特殊PNG图片格式,可以在图片指定位置拉伸或填充内容。NinePatch图的优点是体积小,拉伸不变形,能够很好的适配Android各种机型,AndroidSDK自带NinePatch图的编辑工具。