我是靠谱客的博主 含蓄小懒猪,最近开发中收集的这篇文章主要介绍图片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)

最后

以上就是含蓄小懒猪为你收集整理的图片Bitmap的全部内容,希望文章能够帮你解决图片Bitmap所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部