图像基础:BMP、RGB、JPG、PNG等格式详解(二)

您所在的位置:网站首页 jpg和jpg有啥区别 图像基础:BMP、RGB、JPG、PNG等格式详解(二)

图像基础:BMP、RGB、JPG、PNG等格式详解(二)

2023-10-22 15:32| 来源: 网络整理| 查看: 265

RGB格式概述

对一种颜色进行编码的方法统称为“颜色空间”或“色域”。用最简单的话说,世界上任何一种颜色的“颜色空间”都可定义成一个固定的数字或变量。RGB(红、绿、蓝)只是众多颜色空间的一种。采用这种编码方法,每种颜色都可用三个变量来表示-红色绿色以及蓝色的强度。记录及显示彩色图像时,RGB是最常见的一种方案。但是,它缺乏与早期黑白显示系统的良好兼容性。因此,许多电子电器厂商普遍采用的做法是,将RGB转换成YUV颜色空间,以维持兼容,再根据需要换回RGB格式,以便在电脑显示器上显示彩色图形。

RGB格式的类别

简单来讲,RGB在计算机中的表示主要分为两大类,一种是索引形式,一种是像素形式: (1) 索引: 诸如RGB1, RGB4,RGB8,分别表示每个像素用1个bit, 4个bit, 8个bit来表示,那么,这些bit存储的并非是实际的R,G, B值,而是对应点的像素在调色板中的索引。 (2) 像素形式: 诸如RGB565,RGB555, RGB24,RGB32,ARGB32,这些格式,存储的是每一个像素点的R,G,B值。比如RGB24,分别用8个bit去表示R, G, B。

RGB的索引形式

注释:关于调色板,可以简单理解为通过编号映射到颜色的一张二维表。如01索引,表示红色。采用索引格式的RGB,红色的像素对应存储的值便是索引01.

RGB索引格式简介: 1.RGB1: 每个像素用1个bit表示,可表示的颜色范围为双色,即最传统的黑和白。1个bit只能表示0,1两种值。需要调色板,不过调色板只包含两种颜色。 2.RGB4: 每个像素用4个bit表示,4个bit所能够表示的索引范围是0-15,共16个。也就是可以表示16种颜色。即调色板中包含16中颜色。 3.RGB8: 每个像素用8个bit表示。8个bit所能够表示的索引范围是0-255,共256个。也就是可以表示256中颜色。即调色板中包含256中颜色。

RGB的像素形式

目前常见的格式如下: RGB565--------每个像素用16位表示,RGB分量分别使用5位、6位、5位 RGB555--------每个像素用16位表示,RGB分量都使用5位(剩下1位不用) RGB24----------每个像素用24位表示,RGB分量各使用8位 RGB32----------每个像素用32位表示,RGB分量各使用8位(剩下8位不用) ARGB32--------每个像素用32位表示,RGB分量各使用8位(剩下的8位用于表示Alpha通道值)

1、RGB565:

RGB565格式每一个像素用16个bit来表示,2个字节,1个WORD, R, G, B分别用5, 6, 5个bit来表示,格式也因此而得名。

排列顺序为: 高字节                     低字节 R R R R R G G G    G G G B B B B B

根据RGB565的存储方式,即可得到获取R,G,B分量的值。现假设计算机中存储某一个像素点的变量为color, 数据类型为short. 那么则有: R = color & 0xF800, (获取高字节的5个bit) G = color & 0x07E0, (获取中间6个bit) B = color & 0x001F, (获取低字节5个bit)

1、RGB555:

RGB55, 表示一个像素用16个bit来表示,2个字节,1个WORD,但是最高位不用,R, G, B分别用5个bit来表示。

排列顺序为: 高字节                     低字节 X R R R R R G G    G G G B B B B B (X代表保留)

根据RGB565的存储方式,即可得到获取R,G,B分量的值。现假设计算机中存储某一个像素点的变量为color, 数据类型为short. 那么则有: R = color & 0x7C00, (获取高字节的5个bit) G = color & 0x03E0, (获取中间5个bit) B = color & 0x001F, (获取低字节5个bit)

3、RGB24:

RGB24, 一个像素用24个bit来表示,3个字节,R, G, B分量分别用8个bit来表示,取值范围为0-255。 (注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。)

排列顺序为: 高字节                                                      低字节 B B B B B B B B    G G G G G G G G    R R R R R R R R

根据RGB24的存储方式,即可得到获取R,G,B分量的值。现假设计算机中存储某一个像素点的变量为color, 数据类型为int. 那么则有: R = color & 0x000000FF, G = color & 0x0000FF00, B = color & 0x00FF0000,

4、RGB32:

RGB32使用32位来表示一个像素,4个字节,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB24。) 注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。

排列顺序为: 高字节                                                                                     低字节 B B B B B B B B    G G G G G G G G    R R R R R R R R    X X X X X X X X (X代表保留)

根据RGB32的存储方式,即可得到获取R,G,B分量的值。现假设计算机中存储某一个像素点的变量为color, 数据类型为int. 那么则有: R = color & 0x0000FF00 G = color & 0x00FF0000, B = color & 0xFF000000,



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3