일반적으로 개발 포럼에서는 간단하기 때문에 아래 방법을 많이 답변해주는데 위 방법이 훨~씬 빠르다.
HBITMAP hbmReturn = NULL; void* buf = new byte[bitmapLength]; // bitmap bytes ... // fast (o) BITMAPFILEHEADER* bmfh = (BITMAPFILEHEADER*)buf; BITMAPINFOHEADER* bmih = (BITMAPINFOHEADER*)((byte*)buf + sizeof(BITMAPFILEHEADER)); BITMAPINFO* bmi = (BITMAPINFO*)bmih; void* bits = (void*)((byte*)buf + bmfh->bfOffBits); hbmReturn = CreateDIBitmap(pDC->GetSafeHdc(), bmih, CBM_INIT, bits, bmi, DIB_RGB_COLORS);
// very slow (x) IStream* stream = SHCreateMemStream((BYTE*)buf, length); Bitmap* bitmap = Gdiplus::Bitmap::FromStream(stream); bitmap->GetHBITMAP(Color(255, 255, 255, 255), &hbmReturn); // delay stream->Release(); delete bitmap;
Bitmap
C++
GDI+
Retrieved from http://hyacinth.byus.net/moniwiki/wiki.php/C++/(Gdiplus)BitmapArray to HBITMAP
last modified 2015-05-19 11:18:41