概述
参考:
Android Bitmap(位图)详解
Bitmap即位图, 本质上就是一张图片的内容在内存中的表达形式
Bitmap.Config
- ARGB_8888:每个像素点4字节内存,质量最高,内存占用最大,色深为32位;
- RGB_565:每个像素点2字节内存,不支持透明度,色深为16位;
- ALPHA_8:不支持颜色值,只能存储透明度通道值,用于设置遮盖效果等.
Bitmap的压缩存储
Bitmap是图片在内存中的表示,GIF、JPEG、BMP、PNG和WebP等格式图片是持久化存储后的图片。内存中的Bitmap到磁盘上的GIF、JPEG、BMP、PNG和WebP等格式图片经过了”压缩”过程,磁盘上的GIF、JPEG、BMP、PNG和WebP等格式图片到内存中的Bitmap经过了“解压缩”的过程.
- 有损压缩
删除图像中颜色的突然变化(删除部分像素点),让大脑脑补颜色;
有损压缩可以灵活设置压缩率;
优点:加载到内存中的时候,占用内存依然较小;
缺点:是质量差 - 无损压缩
记录重复的颜色的位置,删除重复的颜色.读取的时候,会根据记录的位置,重新显示颜色;
优点:可以比较好保存图像的质量,压缩率比较低;
缺点:占用的内存不会减少
色深
每一个像素点用多少bit来存储ARGB值,用于衡量一张图片的色彩处理能力(即色彩丰富程度)
有8-bit、16-bit、24-bit和32-bit
位深
对bitmap进行压缩存储时存储每个像素所用的bit数,用于存储
图片大小计算:
如:200100 ARGB_8888(色深32位),保存位深24位
文件:20010024/8压缩率 Byte
内存:20010032/8 Byte
加载大图:
BitmapRegionDecoder, 可以按照区域进行加载
BitmapRegionDecoder mDecoder = BitmapRegionDecoder.newInstance(is, false);
true:区域解码类可以保持对输入的浅引用;
false:区域解码类将显式地复制输入数据,并保留它。即使允许分享,仍可能去制作输入数据的深拷贝。如果图像是逐步编码的,允许共享可能会降低解码速度。(通常传false)
最后
以上就是含蓄小懒猪为你收集整理的图片Bitmap的全部内容,希望文章能够帮你解决图片Bitmap所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复