Android Bitmap的常用压缩方式
作者:互联网
一、前言
已经好久没有更新博客,大概有半年了,主要是博主这段时间忙于找工作,Android岗位的工作真的是越来越难找,好不容易在广州找到一家,主要做海外产品,公司研发实力也不错,所以就敲定了三方协议。现在已经在公司实习了一个月多,目前主要是负责公司某个产品的内存优化,刚好就总结了一下Android Bitmap常用的优化方式。
Android中的图片是以Bitmap方式存在的,绘制的时候也是Bitmap,直接影响到app运行时的内存,在Android,Bitmap所占用的内存计算公式是:图片长度 x 图片宽度 x像素点的字节数
二、图片常用的压缩格式
Enum Values | |
---|---|
ALPHA_8 | 每个像素都存储为一个半透明(alpha)通道 |
ARGB_4444 | 此字段已在API级别13中弃用。由于此配置的质量较差,建议使用ARGB_8888 |
ARGB_8888 | 每个像素存储在4个字节。 |
RGB_565 | 每个像素存储在2个字节中,只有RGB通道被编码:红色以5位精度存储(32个可能值),绿色以6位精度存储(64个可能值),蓝色存储为5位精确。 |
其中字母代表的意思我们大概都可以理解,接下来我们来算算它们单个像素点的字节数:
- ALPHA_8:表示8位Alpha位图,即透明度占8个位,一个像素点占用1个字节,它没有颜色,只有透明度。
- ARGB_4444:表示16位ARGB位图,即A=4,R=4,G=4,B=4,一个像素点占4+4+4+4=16位,2个字节。
- ARGB_8888:表示32位ARGB位图,即A=8,R=8,G=8,B=8,一个像素点占8+8+8+8=32位,4个字节。
- RGB_565 :表示16位RGB位图,即R=5,G=6,B=5,它没有透明度,一个像素点占5+6+5=16位,2个字节
我们在做压缩处理的时候,可以先通过改变Bitmap的图片格式,来达到压缩的效果,其实压缩最主要就是要么改变其宽高,要么就通过减少其单个像素占用的内存。
三、常用的压缩方法:
1.质量压缩
作者:SeanMa
链接:https://www.jianshu.com/p/08ed0e3c4e71
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:字节,ARGB,压缩,Bitmap,Android,像素点 来源: https://www.cnblogs.com/Free-Thinker/p/12486972.html