1.图片的内存大小:宽<px> * 高<px> * 1像素占用大小
例如:512*512 像素的图片的大小,假设这个是普通的图片RGBA 那么,一个像素占用大小就是4 字节 Byte <8+8+8+8 = 32bit >。
那么图片大小:512 * 512 * 4 Byte = 1024Kb = 1M
通常一个像素由R,G,B,A 四个分量表示,如(0,0,0,1) 表示黑色,(1,1,1,1)表示白色
一个颜色分量用0~255表示,在内存中需要8位表示,所以一个颜色分量占用的内存就是8bit = 1Byte <字节>,那么通常一个RGBA 格式的图片占用4个字节内存
2.像素占用大小由图片本身的格式等信息决定,除了常见的RGBA ,也有其他格式如:ARGB_4444,ARGB_8888,RGB_565,ALPHA_8 等,表示每个分量占用的位数.
A: 透明度通道
R:红色通道
G:绿色通道
B: 蓝色通道
拓展
Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位
Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位
Bitmap.Config RGB_565:每个像素占四位,即R=5,G=6,B=5,没有透明度,那么一个像素点占5+6+5=16位
Bitmap.Config ALPHA_8:每个像素占四位,只有透明度,没有颜色。
我想你看到这里应该已经完全明白内存大小的计算了~
网友评论