乐趣区

RGB24图像颠倒解决方法

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"
  • RGB32RGB24 相比没有本质区别,除了多了一个字节 ( 透明度),每个像素占用 32bit( 4 个字节),数据排列顺序为BGRA BGRA BGRA ...
退出移动版