从二进制数据C++ HBITMAP

C++ HBITMAP from binary data

本文关键字:HBITMAP C++ 数据 二进制      更新时间:2023-10-16

我正在使用Winapi,但我被卡住了。通常将图像加载到我正在使用的对话框中的SS_BITMAP

HBITMAP hImage = ( HBITMAP ) LoadImage( hInstance, L"D:\foo.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
HWND hFrame = GetDlgItem( hWnd, IDC_IMAGE );
SendMessage(hFrame, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hImage);

但现在我有不同的任务。我需要从包含图像二进制数据的缓冲区放置图像。我使用了一些代码,但我知道它SetBitmapBits( hImage, sizeof(image),image);错误。 image是带有数据的字符数组。

然后你可以使用

  • CreateDIBSection创建位图内存结构
  • SetDIBits用像素数据填充它

这个 SO 答案对我来说看起来不错。