RGB24格式图像输出颠倒可以使用以下方法转换过来。
实现
- 将数据强制转换为3字节(符合RGB24的数据排列方式);
- 使用
std::reverse
函数将每3字节数据从头到尾颠倒一次。1
2
3
4
5
6
7
8struct 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 ...
。