Android中的图片读取方式Bitmap
Android中的Bitmap定义了四种图片的读取方式ARGB_8888,ARGB_4444,RGB_565,ALPHA_8,其中
A 代表 :Alpha 透明度
R 代表 :Red 红色
G 代表 :Green 绿色
B 代表 :Blue 蓝色
下图中以1像素所占用的内存进行说明
色彩模式 | ARGB_8888 | ARGB_4444 | RGB_565 | ALPHA_8 | HARDWARE | RGBA_F16 |
---|---|---|---|---|---|---|
A(Alpha-透明度) | 8位 | 4位 | 0位 | 8位 | 8位 | 8位 |
R(Red-红色) | 8位 | 4位 | 5位 | 0位 | 8位 | 8位 |
G(Green-绿色) | 8位 | 4位 | 6位 | 0位 | 8位 | 8位 |
B(Blue-蓝色) | 8位 | 4位 | 5为 | 0为 | 8位 | 8位 |
共占用内存 | 32位 <4字节> | 16位 <2字节> | 16位 <1字节> | 8位 <1字节> | 64位 <8字节> | 64位 <8字节> |
由上图可知
ARGB_8888:每像素所占用的图片内存最大,同时也是最清晰的
ARGB_4444:每像素内存占用为ARGB_8888格式的一半
RGB_565: 没有A即Alpha通道,内存不同样为16位 2个字节,搭配JPG类型的图片
ALPHA_8: 只有8位的Aloha通道
HARDWARE:图片的像素数据只存在与GPU中,并对图片的显示做了一些优化
RGBA_F16:每个像素存储占8个字节,ARGB每个通道占用半精度浮点值,Google的注释里还指明这个属性非常适合用于广色域宽屏和HDR(高动态范围的图片)。所以以此来看,它所占用的内存是最高的,因此显示的效果也非常好
以下已一张图片(400 * 800)的图片加载在内存中的计算情况如下
ARGB_8888 模式下内存为 400 * 800 * 4(每像素所占字节) = 1280000 字节
ARGB_4444 模式下内存为 400 * 800 * 2(每像素所占字节)
Android Bitmap(位图)详解
Android图片资源的缩放问题
android 图片占用内存大小及加载解析
Android Bitmap 常见的几个操作:缩放,裁剪,旋转,偏移
Android入门——Bitmap和BitmapFactory