问题描述
我有ARGB类型的有效HBITMAP句柄。如何使用GDI +绘制它?
I have valid HBITMAP handle of ARGB type. How to draw it using GDI+?
我试过方法:
graphics.DrawImage(Bitmap :: FromHBITMAP(m_hBitmap,NULL),0,0) ;
但它不使用alpha通道。
I've tried method:graphics.DrawImage(Bitmap::FromHBITMAP(m_hBitmap, NULL), 0, 0);But it doesn't use alpha channel.
推荐答案
我有工作样本:
// 1.使用位图句柄获取信息:图像大小,位
BITMAP bmpInfo;
:: GetObject(m_hBitmap,sizeof(BITMAP),& bmpInfo);
int cxBitmap = bmpInfo.bmWidth;
int cyBitmap = bmpInfo.bmHeight;
void * bits = bmpInfo.bmBits;
// 2.创建&使用像素格式PixelFormat32bppARGB
Gdiplus ::图形图形(dcMemory);
Gdiplus ::位图位图(cxBitmap) ,cyBitmap,cxBitmap * 4,PixelFormat32bppARGB,(BYTE *)位);
graphics.DrawImage(& bitmap,0,0);
这篇关于如何使用GDI +绘制ARGB位图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!