Какой самый эффективный способ памяти преобразовать любое изображение в DIB?
В моем приложении я должен конвертировать изображение (изображение может быть в любом формате - PNG, JPEG, BMP и т. Д.) В DIB.
Это то, что я делаю сейчас,
- Создать подвижную глобальную память, используя GlobalAlloc(GHND,0)
- Создайте поток в этой глобальной памяти с помощью API CreateStreamOnHGlobal ()
- Сохраните данное изображение в поток, используя кодировщик для BITMAP.
- Затем я создаю другой буфер и копирую содержимое из глобальной памяти во вновь созданный буфер, пропуская заголовок растрового файла. Это делает вновь выделенный буфер данными DIB
- Наконец, освободите глобальную память, используя GlobalFree(), и освободите поток.
Что мне здесь неудобно, так это то, что здесь выделяется много памяти для преобразования изображения в DIB. Я хотел бы знать, есть ли какой-либо другой способ добиться этого, используя только минимальный объем памяти и выделения памяти.