ARGB_8888、ARGB_4444、RGB_565、ALPHA_8深入分析及常见误区纠正
来源:互联网 发布:win7服务优化工具 编辑:程序博客网 时间:2024/05/17 09:25
原文地址:http://blog.csdn.net/code_bird/article/details/51735269
ARGB_8888、ARGB_4444、RGB_565、ALPHA_8深入分析及常见误区纠正
- 区别体现:
- 标题中的四种类型为bitmap在内存中存在的四种色彩的存储模式,他们本质区别体现在每种模式下的bitmap内部的每个像素点,在内存中的大小和组成成分的区别。
- 基础知识:
- A->alpha(透明度),R->red(红色),G->green(绿色),B->blue(蓝色)
- 深入分析(每种模式下的一个像素的具体存储大小):
- ARGB_8888:A->8bit->一个字节,R->8bit->一个字节,G->8bit->一个字节,B->8bit->一个字节,即8888,一个像素总共占四个字节,8+8+8+8=32bit=8byte
- 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
- 常见误区:
- 网上很多人分享的四种格式下的像素大小中,ARGB_4444中每个像素占用了4个字节,有些是2个字节,我自己写了demo,跑了一下,发现创建宽高相同的两张图片,在ARGB_8888,ARGB_4444两种格式下,输出大小是相同的,后来仔细看了下介绍,发现在API level 13之后,ARGB_4444由于图片效果较差等原因,在以该种格式操作图片时,会被ARGB_8888,默认替代,所以实际上demo中的两种格式,都是ARGB_8888格式,在这里给大家说明一下,希望对大家能有帮助。
阅读全文
0 0
- ARGB_8888、ARGB_4444、RGB_565、ALPHA_8深入分析及常见误区纠正
- ARGB_8888、ARGB_4444、RGB_565、ALPHA_8深入分析及常见误区纠正
- ALPHA_8, ARGB_4444, ARGB_8888, RGB_565
- ALPHA_8 RGB_565 ARGB_4444 ARGB_8888
- RGB_565,ALPHA_8,ARGB_4444,ARGB_8888
- ALPHA_8 , ARGB_4444 , ARGB_8888 , RGB_565区别
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- (Bitmap)ARGB_8888/RGB_565/ALPHA_8/ARGB_4444详解
- ALPHA_8、ARGB_4444、ARGB_8888和RGB_565的区别
- ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的区别
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的区别
- 关于ARGB_8888、ALPHA_8、ARGB_4444、RGB_565的理解
- Linux i2c驱动(eeprom 读写)
- Lua和C++交互详细总结
- eclipse上传svn忽略target文件夹的坑
- (重要!)java中数据的5种存储位置(堆与栈) 成员变量局部变量内存分配
- 关于json的解析
- ARGB_8888、ARGB_4444、RGB_565、ALPHA_8深入分析及常见误区纠正
- s:select的默认值不是headerValue
- Rhyme/Linux ACL权限管理简介、查看与开启ACL权限管理命令
- python控制台代码自动补全
- Unity3D之Mecanim动画系统学习笔记(一):认识Mecanim动画系统
- JAVA分布式快速开发基础平台 iBase4J 推荐 国产 J2EE框架
- angular 表单验证,密码双向验证
- Coursera自然语言处理 Week1 笔记
- MarkDown用法介绍