RGB24图像颠倒解决方法

21次阅读

共计 401 个字符,预计需要花费 2 分钟才能阅读完成。

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 ...

正文完
 0