RGB24 格式图像输出颠倒可以使用以下方法转换过来。
实现
- 将数据强制转换为 3 字节(符合 RGB24 的数据排列方式);
- 使用
std::reverse
函数将 每 3 字节数据 从头到尾颠倒一次。
struct Rgb24Byte {
uint8_t r;
uint8_t g;
uint8_t b;
};
Rgb24Byte *rgb24Buf = (Rgb24Byte *)rgb24Data;
std::reverse(rgb24Buf, rgb24Buf + bufSize); // 反转数据
相关知识
- RGB24 图像为每个像素占用 8bit( 1 个字节),数据排列顺序为
BGR BGR BGR ...
。 -
reverse
函数用于 反转 容器中的 内容 ,包含在algorithm
库中。效果:"123456" -> "654321"
。 -
RGB32和 RGB24 相比没有本质区别,除了多了一个字节 ( 透明度),每个像素占用 32bit( 4 个字节),数据排列顺序为
BGRA BGRA BGRA ...
。