美文网首页
bitmap简单学习记录

bitmap简单学习记录

作者: 梧叶已秋声 | 来源:发表于2020-05-19 11:56 被阅读0次

在对RGBYUV有了一定的了解后,来看看Bitmap
一般设备(例如相机)采集的数据是RGB或者YUV等格式的,那么bitmap又是什么呢?虽然一直在用它,但是真的了解它吗?

出处:https://baike.baidu.com/item/Bitmap
位图(Bitmap),又称栅格图(英语:Raster graphics)或点阵图,是使用像素阵列(Pixel-array/Dot-matrix点阵)来表示的图像。
编码方式:RGB,位图颜色的一种编码方法,用红、绿、蓝三原色的光学强度来表示一种颜色。这是最常见的位图编码方法,可以直接用于屏幕显示。

出处:Android编程权威指南
Bitmap是个简单对象,它只存储实际像素数据。也就是说,即使原始照片已压缩过,但存入Bitmap对象时,文件并不会同样压缩。因此,一张1600万像素24位的相机照片(存为JPG格式大约5MB),一旦载入Bitmap
对象,就会立即膨胀至48MB!

也就是说,通常我们的图片数据(如jpgjpg本身就是代表压缩方式)都是压缩过的,一旦转换成bitmap是会放大的。这也就解释了,为什么使用bitmap过程中经常容易造成内存泄漏之类的问题。

大致意思是bitmap是一种图像,其常见编码方式是RGB。但是并不能理解到底何为bitmap
找了几本计算机图形学的书籍,想了解何为bitmap

以下内容出自《计算机图形学(OpenGL版)第3版》和《计算机图形学 第4版》。

忽略掉《计算机图形学 第4版》中关于计算机图形硬件这一章的大部分描述(因为大部分无法理解),来看计算机图形软件这一章。

计算机图形学 第4版
这段话简单来说,就是图形软件有2种:1.如windows自带的画图、PS、CAD等画图应用软件,不需要有代码基础就能使用的专用图形软件。2.GL、OpenGL等通用图形软件,需程序员通过编写代码从而实现图形显示在输出设备上。 计算机图形学(OpenGL版)第3版
计算机绘制的图形是由输出图元组成,来看输出图元为光栅图像的情况。
假设计算机绘制出了一个如下所示的光栅图形(一个棋子),如下所示。
计算机图形学(OpenGL版)第3版
这个光栅图像,由多个单元(每个单元被称为像素,像素即为图像元素的简称)组成。
计算机图形学(OpenGL版)第3版
光栅图像以数组的形式存储在计算机中,例如18x19的矩形数组存贮了一个光栅图像,那么这个数组即为像素图,或者位图
计算机图形学(OpenGL版)第3版
image.png
image.png

这幅图,左边是光栅图像,右边是部分像素图的值,此图为灰度图像,因此存储是数值是灰度。左上的那个像素对应的数组中的数值就是2
一般大多数情况下我们使用的图片存储是RGB数值,有时候也会带上alpha通道的数据。
假设使用Bitmap.Config.ARGB_8888。ARGB_8888表示每个像素用32比特位表示,占4个字节,由4个8位组成,ARGB分量都是8位。
那么一个像素对应的数值(数值是虚构的) 应如下所示。

A R G B
11111111 00001111 00011111 00111111

以上涉及到的概念有:光栅图像,像素,位图,灰度图像,ARGB。
到这里,对于bitmap的概念应该有了一定的理解。后续的问题就是使用中如何避免OOM。基本上思路都是压缩处理后再使用。

Android 性能优化(五)之细说 Bitmap
BitmapFactory获取Bitmap图片以及解决OOM异常
Bitmap与OOM
Android 之 Bitmap
浅谈图片加载的三级缓存

相关文章

  • bitmap简单学习记录

    在对RGB和YUV有了一定的了解后,来看看Bitmap。一般设备(例如相机)采集的数据是RGB或者YUV等格式的,...

  • Bitmap疑惑

    Bitmap是Android中的大头,下面记录自己在Bitmap理解错误的地方 1. BitmapFactory主...

  • 安卓相机开发

    1,简要记录问题,当bitmap设置给imagview之后,假如bitmap对象被回收,imagview当时不会有...

  • 《数据库系统概念》16-位图索引和查询处理

    一、位图索引 位图索引(bitmap indices)是一种专为多个键的简单查询而设计的。应用位图索引的前提是记录...

  • Bitmap学习

    1. 学习Bitmap之前的先需概念: 屏幕像素:屏幕上像素点数,单位是px, 1px为1个像素点。 屏幕尺寸:屏...

  • Bitmap 学习

    recycle() 方法 后面会补上 LRU --->LruCache 这个类需要看看 进行三级缓存 L...

  • Android Bitmap知识梳理学习

    学习资料: android 开发艺术探索 Bitmap api 1.关于 Bitmap 在Android中Bita...

  • Android学习笔记之Bitmap和Cache

    本章的学习内容有以下几点: Bitmap的加载 Cache缓存策略 ImageLoader实现 一、Bitmap的...

  • Android Bitmap知识梳理学习

    参考:Android Bitmap知识梳理学习 1.关于 Bitmap 在Android中Bitamp指的就是一张...

  • Fragment

    Bitmap 本文仅供个人学习,复习的链接

网友评论

      本文标题:bitmap简单学习记录

      本文链接:https://www.haomeiwen.com/subject/yddhvctx.html