Bitmap四种色彩存储模式ARGB_8888、ARGB_4444、 RGB_565、 ALPHA_8

一、基础知识:

ARGB:指的是一种色彩模式,里面A代表Alpha,R表示red,G表示green,B表示blue。

自然界中所有的可见色都是由红、绿、蓝组成的,所以红、绿、蓝又称为三原色,每个原色都存储着所表示颜色的信息值

A->alpha(透明度),R->red(红色),G->green(绿色),B->blue(蓝色)

二、四种模式的区别:

四种类型为bitmap在内存中存在的四种色彩的存储模式,他们本质区别体现在每种模式下的bitmap内部的每个像素点,在内存中的大小和组成成分的区别。

三、深入分析(每种模式下的一个像素的具体存储大小)
  • ARGB_8888:A->8bit->一个字节,R->8bit->一个字节,G->8bit->一个字节,B->8bit->一个字节,即8888,一个像素总共占四个字节,8+8+8+8=32bit = 4byte
  • ARGB_4444:A->4bit->半个字节,R->4bit->半个字节,G->4bit->半个字节,B->4bit->半个字节,即4444,一个像素总共占两个字节,4+4+4+4=16bit = 2byte
  • RGB_565:R->5bit->半个字节,G->6bit->半个字节,B->5bit->半个字节,即565,一个像素总共占两个字节,5+6+5=16bit = 2byte
  • ALPHA_8:A->8bit->一个字节,即8,一个像素总共占一个字节,8 = 8bit = 1byte
四、计算大小方式:

一张bitmap的大小 = 有多少个像素点 * 每个像素点内存中占用的大小 = 长 * 宽 * 3中讲的各种模式下对应的像素点占用的比特位

例子:计算一张长宽为1000/1000,ARGB_8888格式的一张bitmap的大小:
1000 * 1000 * 4byte = 4000kb = 4M

五、图片的位深度

计算机实际上是用每个像素需要的位深度来表示的。

黑白二色的图像是数字图像中最简单的一种,它只有黑、白两种颜色,也就是说它的每个像素只有1位颜色,位深度是1,用2的一次幂来表示;

考虑到位深度平均分给R, G, B和Alpha,而只有RGB可以相互组合成颜色。

所以4位颜色的图(ARGB_4444),它的位深度是4,只有2的4次幂种颜色,即16种颜色或16种灰度等级 ) 。8位颜色的图(ARGB_8888),位深度就是8,用2的8次幂表示,它含有256种颜色 ( 或256种灰度等级 )。24位颜色可称之为真彩色,位深度是24,它能组合成2的24次幂种颜色,即:16777216种颜色 ( 或称千万种颜色 ),超过了人眼能够分辨的颜色数量。当我们用24位来记录颜色时,实际上是以2^(8×3),即红、绿、蓝 ( RGB ) 三基色各以2的8次幂,256种颜色而存在的,三色组合就形成一千六百万种颜色。

六、参考文档

ARGB_8888、ARGB_4444、RGB_565、ALPHA_8深入分析及常见误区纠正

安卓中图片色彩的存储方式及对ARGB_8888、ARGB_4444、RGB_565、ALPHA_8的理解

Bitmap学习(大图片、大长图显示及加载)

BAndroid 高清加载巨图方案 拒绝压缩图片

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值