RGB格式学习:RGBx、xRGB、RGBA、ARGB等格式转换成RGB
在使用gstreamer的过程中经常遇到各种类型的RGB格式图像。来看看各种格式有什么关系。RGB类型格式在内存中各个分量都是依次排序的。排序方式都是和命名方式的位置顺序是一致的,且各个分量都是占一个字节的大小。下面列出RGB的详细信息。
"RGB"
+--+--+--+ +--+--+--+ |R0|G0|B0| |R1|G1|B1| ... +--+--+--+ +--+--+--+Component 0: Rdepth: 8pstride: 3offset: 0Component 1: Gdepth: 8pstride: 3offset: 1Component 2: Bdepth 8pstride: 3offset: 2Imagedefault rstride: RU4 (width * 3)default size: rstride (image) * height
"BGR" 则是反向RGB
+--+--+--+ +--+--+--+ |B0|G0|R0| |B1|G1|R1| ... +--+--+--+ +--+--+--+
而RGBx和RGBA只是在RGB的形式上多了一个通道而已。A代表Alpha通道,主要用来表示图像叠加时的透明度选择。x代表在RGB基础增加一个通道用来存储其他信息。这两个分量在内存上都是比RGB多占用一个字节。
"BGRA" 带有 Alpha 通道的 RGB
+--+--+--+--+ +--+--+--+--+ |B0|G0|R0|A0| |B1|G1|R1|A1| ... +--+--+--+--+ +--+--+--+--+
"RGBx" sparse RGB packed into 32 bit, space last
+--+--+--+--+ +--+--+--+--+ |R0|G0|B0|X | |R1|G1|B1|X | ... +--+--+--+--+ +--+--+--+--+
其他的ARGB或者BGRx格式都是大同小异,只是各分量排序方式不一样。
弄清楚了内存排序方式就很好实现转换格式了。下面给出GBRx转GBR示例代码。
void cvtColorGBRx2GBR(guint8 *rgb, const guint8 *src, int width, int height)
{for (int h = 0; h < height; h++){for (int w = 0, w1 = 0; w < width*3; w += 3, w1 += 4){rgb[w] = src[w1];rgb[w + 1] = src[w1+1];rgb[w + 2] = src[w1+2];}rgb += width*3;src += width*4;}return;
}
转RGB的话只需要改变分量的位置就行了
rgb[w] = src[w1+2];rgb[w + 1] = src[w1+1];rgb[w + 2] = src[w1];
总体来说其实就是x或者A通道分量去掉重新组合成RGB。
RGB格式学习:RGBx、xRGB、RGBA、ARGB等格式转换成RGB相关推荐
- 海康威视IPCamera图像捕获方法:捕获实时流,将实时流解码成YV12,然后转换成RGB
将他的MFC工程相关的代码抠出来,重组.于是实现了捕获YV12格式的视频流的功能,光有YV12还是不行的,需要将YV12转成YUV4:4:4的,然后再将YUV色度空间转换成RGB色度空间,这个过程是在 ...
- 颜色的整数值转换成RGB值
最近在研究使用Python操作Excel自动化的过程中,我遇到了一个小问题.为了弄清楚Excel在设置单元格条件格式时候所用的颜色,我使用VBA录制了宏命令,但是单元格和字体的颜色都是使用整数值进行标 ...
- Android 将一张CMYK模式的图片转换成RGB模式的图片
Android系统是不能够显示打印模式(CMYK)的图片的.所以要在Andorid设备下显示CMYK模式的图片我得做法是将其转换成RGB模式的图片,但是通过转换颜色丢失比较大,如果大家有好的办法欢迎指 ...
- 十六进制颜色码转换成RGB颜色值
十六进制颜色码转换成RGB颜色值 相关知识点 0xFF 十六进制 如果转成二进制位:11111111 int值是32位,0的二进制: 00000000000000000000000000000000 ...
- 十六进制颜色码转换成RGB颜色值:
十六进制颜色码转换成RGB颜色值: 颜色码对照表 颜色 英文代码 形象描述 十六进制 RGB LightPink 浅粉红 #FFB6C1 255,182,193 Pink 粉红 #FFC0CB 2 ...
- 海思AI芯片(Hi3519A/3559A)方案学习(十四)JPEG图片转换成bgr文件
原文:https://blog.csdn.net/avideointerfaces/article/details/89931156 前言 在系列文章海思AI芯片(Hi3519A/3559A)方案学习 ...
- 10_OpenCV读取原始raw(raw10和raw8),转换成rgb和灰度图,并显示
void ReadRaw8(){std::string strFilename = "raw8.raw";int nWidth = 1456;int nHeight = 1096; ...
- 转png格式_CAD转PNG,你知道怎样转换成高质量清晰的黑白图片吗?
嗨,我是爱踢汪.每当我们在绘制CAD图纸的过程中,为了方便于传输查看,我们常常需要把CAD图纸转换成图片格式.其中就有JPG和PNG格式.相 较于有损压缩的JPG格式,PNG格式是可以保存为透明背景的 ...
- 日期格式转换成时间戳格式php,php日期转时间戳,指定日期转换成时间戳
有朋友问php与mysql有没有办法把日期转时间戳或把指定日期转换成时间戳呢,其实这个是有并且还非常的简单,下面我来给大家介绍介绍. 一.在MySQL中完成 这种方式在MySQL查询语句中转换,优点是 ...
- QSV格式转换器如何将爱奇艺视频转换成MP4格式
爱奇艺视频网站中拥有大量影视剧的版权,其官方为了保护视频的版权信息,就将已下载或已缓存视频的格式从MP4格式改成QSV格式.QSV格式文件是爱奇艺视频缓存的视频文件格式,QSV格式只能使用爱奇艺系列的 ...
最新文章
- Spark:group by和聚合函数使用
- ftp 的三种数据传输模式
- java 页面换行处理
- 模板:min-max容斥离散随机变量的几何分布(洛谷P3175:[HAOI2015]按位或)
- 4固定在底部_礼堂椅厂家教你如何固定座椅
- 【USACO1.1】Broken Necklace
- 观测云品牌正式亮相,携手通信院共推国内可观测性概念与技术发展!
- maven的Windows环境下安装配置
- linux中启动不了服务,Linux系统xinetd服务启动不了
- MATLAB 不使用科学计数法 显示坐标 及理解
- codeigniter CI 框架 在helper 中 使用 全局变量 方法
- java代码分析及分析工具
- 比较流行的日志分析软件
- ip okhttp 设置_okhttp3及httpclient中的代理设置
- C语言第零次作业总结
- 电脑安装win10系统
- 现在国际上发行的优秀的儿童期刊杂志有哪些
- HTTP/HTTPS账号密码获取
- IMDB影评数据集无法通过keras下载
- GooglePageRank排名新算法(一)