【发布时间】:2011-08-02 22:50:39
【问题描述】:
我正在使用 libjpeg 将 jpeg 图像从磁盘解码到分配在堆上的内存缓冲区。我使用jpeg_read_scanlines 从文件中读取和解码每个扫描线。这是完美的工作,将每个像素解码为 24 位 RGB 值。
问题是我正在使用一个额外的第三方库,它需要 BGR 格式(而不是 RGB)的缓冲区。使用这个库时,由于通道的顺序错误,我得到了奇怪的结果。
因此,我想找到一种方法将 libjpeg 解码为 BGR 格式而不是 RGB。我已经浏览了网络,但找不到如何配置 libjpeg 来执行此操作?我知道我可以对内存缓冲区进行额外的传递并手动重新排序颜色通道,但是我正在处理的应用程序对时间非常关键,并且必须尽可能快且尽可能高效。
【问题讨论】:
标签: c++ image image-processing jpeg libjpeg