从二进制数据C++ HBITMAP
C++ HBITMAP from binary data
我正在使用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 答案对我来说看起来不错。
相关文章:
- 在Windows上用C++裁剪HBITMAP
- 将 win32 hbitmap 转换为 winrt softwarebitmap
- 如何持续重复使用 HBITMAP 和 HDC?
- 将位数组转换为 HBITMAP 后 bmBits 的 NULL 指针
- HBITMAP 能否包含 alpha 通道信息?
- 如何从依赖于设备的 HBITMAP 构造 GDI+ 位图对象
- 无法从 glReadpixel 创建 HBITMAP
- 由PostMessage发送的来自c++的C ++的免费HBITMAP
- HBITMAP 上的 DrawText 没有 "visible" DC?
- MFC如何将带有透明属性的PNG转换为HBITMAP
- HBITMAP HBM = loadImage函数返回null
- 如何从HBITMAP获取RGBQUAD
- 调整HBITMAP的大小,同时保持透明背景
- 尝试修改 Hbitmap 数据时出现堆栈错误
- 在图片控件中显示传输的HBITMAP
- c++从hbitmap获取原始像素数据
- 从分层窗口获取 HBITMAP - 数据不正确
- 使用 Win32 中的 HBITMAP 绘制一个二维数组,C++
- HBITMAP/BITMAP to BITMAPINFOHEADER -> over network - > BITMAPINFOHEADER to HBITMAP/BITMAP
- 通过将现有HICON绘制为HBITMAP,从现有HICON创建HICON