本文介绍了如何使用GDI +绘制ARGB位图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有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位图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 01:56