Как преобразовать массив изображений rgb из sws_scale в DIB (в битовой карте памяти) - PullRequest
0 голосов
/ 19 ноября 2011

Я декодирую видеокадры из потока, а sws_scale дает мне буфер декодированных данных изображения RGB (PIX_FMT_RGB24). У меня есть внешнее приложение, которое требует ввода DIB. Поэтому мне нужно знать, как преобразовать этот буфер в DIB?

Из того, что я понимаю, DIB на окнах - это BGR и снизу вверх и требует заголовка. Вместо того, чтобы делать это вручную, я надеюсь, что эта проблема уже решена. Мне также интересно, может быть, sws_scale может сделать это изначально.

1 Ответ

1 голос
/ 19 ноября 2011

Это не тот ответ, который вы ищете. Но это все, что у меня есть.

DIB означает независимое от устройства растровое изображение, представляющее собой просто растровое изображение с дополнительным (DIB) заголовком, в котором указана некоторая информация о данных изображения, чтобы ее могли понять более чем одно устройство / платформа. Вы можете легко создать ссылку на бесплатную внешнюю библиотеку, такую ​​как DevIL, для создания растрового изображения, но я не знаю ни одной библиотеки, которая создаст для вас заголовок DIB. Тем не менее, есть много информации о заголовке DIB на вики-странице , и это не так уж сложно сделать самостоятельно и позволить какой-то другой библиотеке (я предлагаю DevIL) выполнить преобразование изображения.

Я надеюсь, что кто-то еще придумал хорошую стороннюю библиотеку, которая делает именно то, что вы просите. Удачи!

...