Возможно, это не так просто, как вы надеялись, но вы можете сделать BMP-файл в памяти с вашими данными пикселей:
При необходимости переведите ваши данные пикселей в BITMAP-дружественный формат. Если у вас уже есть, скажем, данные 24-битного пикселя RGB, скорее всего, перевод не требуется.
Создать (в памяти) структуру BITMAPFILEHEADER, за которой следует структура BITMAPINFO.
Теперь у вас есть все, что вам нужно, вам нужно поместить его в IStream, чтобы GDI + мог это понять. Вероятно, самый простой (хотя и не самый производительный) способ сделать это:
- Вызовите GlobalAlloc () с размером BITMAPFILEHEADER, BITMAPINFO и данными вашего пикселя.
- Чтобы скопировать данные BITMAPFILEHEADER, BITMAPINFO и пикселей в новую память (вызовите GlobalLock, чтобы получить новый указатель памяти).
- Вызовите CreateStreamOnHGlobal (), чтобы получить IStream для вашего BMP в памяти.
Теперь вызовите метод GDI + Image :: FromStream () для загрузки вашего изображения в GDI +.
Удачи!