FFmpeg 4.3 音视频-多路H265监控录放C++开发四 :RGB颜色

news/2024/10/19 23:58:46/

一  RGB 的意义?

为什么要从RGB 开始讲起呢?

因为最终传输到显卡显示器的颜色都是RGB

即使能处理YUV的API,本质上也是帮你做了从 YUV 到 RGB的转换。

RGB888 表示 R 占8bit,G 占8bit,B 占8bit,也就是每一个都占8比特(一个字节),那么也就说用3个字节就可以表示 RGB888。

用unsigned char 表示 1个字节

我们知道一个字节有8位, 就是说表达的10进制 为 0--255

00000000   ------   11111111

因此也可以看到一般表示法有 255 255 255 或者 FF FF FF

那么这个一个 RGB888 代表的是啥呢?实际上就是代表的屏幕上的一个像素点。

例如 1280x720 的图片,在不考虑 字节对齐的 概念下,

就有 720 行,每一行有1280个点,每一个点也叫一个像素,都对应 一个 RGB888。

也有RGBA8888 的形式,实际上多了个一A,也占用8bit(一个字节),是透明度的意思,这个一般在用到 两张图片的叠加的时候,这个透明度A会用到。

二  写一个RGB图片的代码。

我们来看一个 6x3 的RGB888图片在内存中应该是什么样子的?

我们知道每一个像素点都是一个RGB888,那么一个像素点应该是8个bit的R + 8个bit的G+8个bit的B 组成的,也可以说成是 1byte的R + 1byte的G + 1byte的B组成 

如下是一个像素点,

那么每一行就是有 三个这样的像素点

那么我们有6行,应该就是下面这样了

实际上在内存中上述图片都是顺序排列的,没有列的概念,我们画成上面的样子,只是为了方便理解。

我们使用QT 上显示这个自己想画的图片。

要使用的图片为 QTEvent的重载图像的功能。


http://www.ppmy.cn/news/1540367.html

相关文章

解锁A/B测试:如何用数据驱动的实验提升你的网站和应用

来源:Gallo, A. (2017, June 28). A refresher on A/B testing. Harvard Business Review. https://hbr.org/2017/06/a-refresher-on-ab-testing 在数字化时代,我们每天都在被大量的信息和广告轰炸。那么,如何让你的网站或应用脱颖而出&…

通信工程学习:什么是VPN虚拟私人网络

VPN:虚拟私人网络 VPN,即虚拟私人网络(Virtual Private Network),是一种通过公共网络(如互联网)建立的加密连接,用于保护用户的网络连接和数据传输的安全与隐私。以下是关于VPN的详细…

QGroundControl最新版本MacOS平台编译(使用CMakeLists.txt)

1.下载源码: git clone https://github.com/mavlink/qgroundcontrol.git --recursive 2.安装依赖: brew install GStreamer 设置环境变量:GST_PLUGIN_PATH 安装SDL2: brew install SDL2

Qt 自绘开关按钮以及设计器中的提升为用法

文章目录 自绘按钮实现概要效果图代码 提升为用法介绍步骤 总结 自绘按钮实现 概要 当我们需要一个开关样式的QPushbutton,没有图片的话,我们可以采用自绘的形式实现。且使用QtDesinger中提升为Promote to的功能加入界面中,而不是使用代码的…

流体力学笔记

目录 1、名词2、湍流与涡流3 涡激振动4 压力面与吸力面参考:[空气动力学的“他山之石”](https://zhuanlan.zhihu.com/p/412542513) 1、名词 转列:transition 涡脱落:vortex shedding 涡分离:vortex rupture 气动噪声&#xff1a…

SpringBoot配置文件敏感信息如何加密?及踩坑总结(全面讲解)

目录 1.添加依赖 2.接下来去生成密文 3.然后在命令行窗口通过mvn命令去调用这个插件 4.接下来会生成对对应的密文,然后去替换application.properties中的对应内容 5.运行程序解密 在软件开发中,保护敏感信息如数据库密码、API密钥等是至关重要的。J…

leaflet(一)初始化地图

Leaflet 与天地图结合使用,可以通过天地图提供的 API 获取地图瓦片,并在 Leaflet 地图上显示。 1. 安装依赖 首先,确保你已经安装了 Leaflet 和 Vue: npm install leaflet npm install vue-leaflet npm install leaflet.tilela…

【黑马Redis原理篇】Redis网络模型

来源视频 [16,27] 文章目录 1.用户空间和内核空间空间划分缓冲区 2.IO模型2.1 阻塞IO2.2 非阻塞IO2.3 IO多路复用2.3.1 阻塞和非阻塞的对比2.3.2 IO多路复用2.3.3 监听FD方式、通知的方式,有多种实现 2.4 信号驱动IO2.5 异步IO2.6 真正的同步和异步 1.用户空间和内…