RGB24圖像顛倒解決方法

  • 2019 年 10 月 6 日
  • 筆記

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