декодирование libjpeg в BGR

Я использую libjpeg для декодирования изображения jpeg с диска в буфер памяти, выделенный в куче. Я использую jpeg_read_scanlines для чтения и декодирования каждой строки развертки из файла. Это работает отлично, декодируя каждый пиксель как 24-битное значение RGB.

Проблема в том, что я использую дополнительную стороннюю библиотеку, для которой требуется буфер в формате BGR (а не в формате RGB). При использовании этой библиотеки я получаю странные результаты, так как каналы расположены в неправильном порядке.

Поэтому я хотел бы найти способ заставить libjpeg декодировать в формат BGR, а не в RGB. Я рылся в сети и не могу найти, как настроить libjpeg для этого? Я знаю, что могу выполнить дополнительный проход через буфер памяти и вручную изменить порядок цветовых каналов, однако приложение, над которым я работаю, чрезвычайно критично по времени и должно быть максимально быстрым и эффективным.

10
задан Drew Noakes 2 November 2014 в 20:50
поделиться