android rgb888和argb565有啥区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android rgb888和argb565有啥区别相关的知识,希望对你有一定的参考价值。

android rgb888和argb565主要有意义、位数、模式标准三种区别。

1、意义不同:

argb565表示在16位整数中,低5位对应蓝色的高5位,高5位对应红色的高5位,中6位对应绿色的高6位。

rgb888,使用三个连续字节分别存储三个八位数的红色、绿色和蓝色。

2、位数不同:

argb555 也是16位的,2个字节,RGB各5位,有1位未用。

rgb888 是24位的,3个字节。

3、模式标准不同:

argb 是一种色彩模式,也就是RGB色彩模式附加上Alpha(透明度)通道,常见于32位位图的存储结构。

rgb 色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

参考资料来源:百度百科—RGB

参考资料来源:百度百科—ARGB

参考技术A 正常的RGB24是由24位即3个字节来描述一个像素,R、G、B各8位。而实际使用中为了减少图像数据的尺寸,如视频领域,对R、G、B所使用的位数进行的缩减,如你所说的RGB565和RGB555。
RGB565 就是R-5bit,G-6bit,B-5bit
RGB555 就是R-5bit,G-5bit,B-5bit
RGB888 就是R-8bit,G-8bit,B-8bit ;其实这就是RGB24
至于BMP那是RGB的像素数据基础上增加位图头数据而成的文件格式。

一般BMP是BGR888
jpeg是YUV的
其他的要看对这种格式的描述或者问当事人.
RGB565 是16位的,2个字节,5+6+5,第一字节的前5位是R,后三位+第二字节前三位是G,第二字节后5位是B。
RGB555 也是16位的,2个字节,RGB各5位,有1位未用。
RGB888 是24位的,3个字节。本回答被提问者采纳

MediaFoundation RGB 数据和 BMP 之间到底有啥区别?

【中文标题】MediaFoundation RGB 数据和 BMP 之间到底有啥区别?【英文标题】:What exactly is the difference between MediaFoundation RGB data and a BMP?MediaFoundation RGB 数据和 BMP 之间到底有什么区别? 【发布时间】:2017-06-30 11:27:27 【问题描述】:

在试图了解如何将 mediafoundation rgb32 数据转换为可以加载到图像/位图小部件或保存为位图文件的位图数据时,我想知道 RGB32 数据实际上是什么,与 BMP 数据相比有吗?

是否只是缺少标题信息或位图文件具有的宽度、高度等关键信息?

与位图文件或内存流中的 BMP 数据相比,RGB32 的实际含义是什么?

【问题讨论】:

【参考方案1】:

您通常将IMFMediaBuffer 的32 位RGB 附加到IMFSample。这只是位图位,没有格式特定的元数据。您可以通过获取媒体缓冲区指针来访问此数据,例如通过调用IMFSample::ConvertToContiguousBuffer,然后执行IMFMediaBuffer::Lock 来获取像素数据指针。

获得的缓冲区与标准 .BMP 文件中的数据兼容(除了在某些情况下,行可能是相反的顺序),它只是 .BMP 文件在此数据之前有一个标题。 .BMP 文件通常具有BITMAPFILEHEADER 结构,然后是BITMAPINFOHEADER,然后是相关缓冲区。如果你一个接一个地分别初始化,这将产生一个有效的图片文件。这里的This 和other 问题展示了从位图位创建 .BMP 文件的方法。

参见this GitHub code snippet,它与请求的任务非常接近,可能是一个很好的起点。

【讨论】:

以上是关于android rgb888和argb565有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

RGB565 怎么转 RGB888

怎么把android framebuffer输出格式改为rgb565

ALPHA_8ARGB_4444ARGB_8888RGB_565等图片格式的使用

RGB888 到 RGB565 / 位移

RGB888与RGB565互相转换原理

RGB888转换为RGB565格式