图片Bitmap

参考:
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位
文件:200
10024/8压缩率 Byte
内存:20010032/8 Byte

加载大图:
BitmapRegionDecoder, 可以按照区域进行加载
BitmapRegionDecoder mDecoder = BitmapRegionDecoder.newInstance(is, false);
true:区域解码类可以保持对输入的浅引用;
false:区域解码类将显式地复制输入数据,并保留它。即使允许分享,仍可能去制作输入数据的深拷贝。如果图像是逐步编码的,允许共享可能会降低解码速度。(通常传false)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值