二次采样设置的四种彩色模式RGB565,ARGB8888,ARGB4444,ALPHA_8
来源:互联网 发布:模型仓 淘宝 编辑:程序博客网 时间:2024/06/15 22:25
在上一篇博客三级缓存和二次采样的使用中我们提到了四张彩色模式,下面我就给大家介绍一下
在介绍之前我们小了解一下Android中图片占用内存的几个主要的因素:
1 图片长度
2 图片宽度,
3 单位像素占用的字节数
所以一张图片的占用的内存可以用计算公式:
一张图片(Bitmap)占用的内存 = 图片长度 * 图片宽度 * 单位像素占用的字节数.
需要注意的是:图片长度和图片宽度的单位是像素。图片(Bitmap)占用的内存和屏幕密度(Density)无关。创建一个Bitmap时,其单位像素占用的字节数由其参数BitmapFactory.Options的inPreferredConfig变量决定。
好了下面我们来说说四种彩色模式
1、Bitmap.Config ALPHA_8 :
此时图片只有alpha值,没有RGB值,一个像素占用一个字节 。
2、Bitmap.Config ARGB_4444 :
这种格式的图片,看起来质量太差,已经不推荐使用。 而强烈推荐使用ARGB_8888来代替。
一个像素占用2个字节,alpha(A)值,Red(R)值,Green(G)值,Blue(B)值各占4个bites 。 共16bites,即2个字节。
3、Bitmap.Config ARGB_8888:
一个像素占用4个字节,alpha(A)值,Red(R)值,Green(G)值,Blue(B)值各占8个bites , 共32bites , 即4个字节。这是一种高质量的图片格式,电脑上普通采用的格式。它也是Android手机上一个bitmap的默认格式。
4、Bitmap.Config RGB_565:
一个像素占用2个字节,没有alpha(A)值,即不支持透明和半透明, Red(R)值占5个bites ,Green(G)值占6个bites ,Blue(B)值占5个bites,共16bites,即2个字节。 对于半透明颜色的图片来说,该格式的图片能够达到比较好的呈现效果,相对于ARGB_8888来说也能减少一半的内存开销,因此它是一个不错的选择。
另外我们通过android.content.res.Resources来取得一个张图片时,它也是以该格式来构建bitmap。从Android4.0开始,该选项无效。即使设置为该值,系统任然会采用ARGB_8888来构造图片。
【备注】:ARGB指的是一种色彩模式,里面A代表Alpha,R表示red,G表示green,B表示blue,其实所有的可见色都是红绿蓝组成的,所以红绿蓝又称为三原色。 ARGB就是:透明度 红色 绿色 蓝色。
下面我们说说内存计算方法:
图片格式占用内存的计算方法:以一张100*100px的图片占用内存为例
ALPHA_8:
图片长度*图片宽度
100*100=10000字节
ARGB_4444:
图片长度*图片宽度*2
100*100*2=20000字节
ARGB_8888:
图片长度*图片宽度*4
100*100*4=40000字节
RGB_565:
图片长度*图片宽度*2
100*100*2=20000字节
- 二次采样设置的四种彩色模式RGB565,ARGB8888,ARGB4444,ALPHA_8
- ARGB8888 --> ARGB4444&Other Formats 收藏
- 四种色彩模式ARGB_8888、ARGB_4444、 RGB_565、 ALPHA_8的区别
- LRUCache,DiskLrucache,四种引用的区别,以及图片二次采样,三级缓存小知识
- 图片的二次采样
- 图片的二次采样
- Bitmap的二次采样
- bitmap的二次采样
- 图片的二次采样
- Bitmap的二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- 60. Permutation Sequence
- JavaWeb学习教程
- Linux下$TERM环境变量的不同取值含义
- Linux删除距离今天7天之前的所有文件夹
- arduino之pwm用法
- 二次采样设置的四种彩色模式RGB565,ARGB8888,ARGB4444,ALPHA_8
- NKUOJ 1002题 Lucy的难题
- PHP Fatal error: Call to undefined function mb_substr()
- Spring Boot系列 - 6. spring boot 实现Restful API
- tarjan模糊理解
- 蓝桥杯 算法提高 求最大值
- linux下core dump
- 1016. Phone Bills (25)
- Javascript高级程序设计——2.语法、关键保留字、变量