Я думаю, что название очень объяснительное, но здесь есть немного больше деталей, что я пытаюсь сделать.
В основном говорят, что у меня есть БИТМАП загружен в память.
Я хотел бы извлечь BITMAPINFOHEADER из него и добавьте его в мою структуру пакета, которая будет передаваться через сокет. *
Передача не проблема, но как только она прибудет, я бы хотел превратить его обратно в BITMAP, чтобы я мог работать с ним.
Я боролся с этим, и я искал высоко и низко без всякой удачи. Пример и список функций, которые мне понадобятся для выполнения этой задачи, будут полезны.
Большое спасибо. Мне это нужно в Win32 C ++. [нет .NET или MFC] Оценил.
Отправитель:
HBITMAP
GetObject
CreateDIBSection
создать другой HBITMAP
того же разрешения 24/32-битный RGB с VOID*
указатель, который указывает на необработанный байт; вы будете инициализировать BITMAPINFOHEDER
в коде — к этому моменту у вас уже должны быть все необходимые данныеBitBlt
из оригинального растрового изображения в этотBITMAPINFOHEDER
+ байты указателя данных битовой карты на сеть (sizeof BITMAPINFOHEDER
+ BITMAPINFOHEDER::biSizeImage
байт)Получатель:
CreateDIBSection
создать растровое изображение, используя BITMAPINFOHEDER
ты получил; вы снова получаете указатель на необработанные данныеmemcpy
данные изображения в ячейку памяти под указанным указателем или просто постепенно получают данные тамHBITMAP
сноваДругих решений пока нет …