CRect rectP;
m_picture.GetClientRect(&rectP);
CDC *pDC = m_picture.GetDC();
CImage ImageBottom, ImageTop;
ImageBottom.Load(_T("../Res/444.bmp"));
ImageBottom.Draw(pDC->m_hDC, 0, 0, rectP.Width(), rectP.Height(), 0, 0, ImageBottom.GetWidth(), ImageBottom.GetHeight());
ImageBottom.Destroy();
ImageTop.Load(_T("../Res/国旗.png"));
if (ImageTop.IsNull())
{
MessageBox(_T("没加载成功"));
return -1;
}
if (ImageTop.GetBPP() == 32) //确认该图像包含Alpha通道
{
int i;
int j;
for (i = 0; i < ImageTop.GetWidth(); i++)
{
for (j = 0; j < ImageTop.GetHeight(); j++)
{
byte *pByte = (byte *)ImageTop.GetPixelAddress(i, j);
pByte[0] = pByte[0] * pByte[3] / 255;
pByte[1] = pByte[1] * pByte[3] / 255;
pByte[2] = pByte[2] * pByte[3] / 255;
}
}
}
ImageTop.Draw(pDC->m_hDC, 0, 0, rectP.Width(), rectP.Height(), 0, 0, Image
MFC,VC++重叠贴图,先贴正常图片,再贴透明PNG图片
最新推荐文章于 2024-06-19 17:37:34 发布
本文介绍了如何在MFC环境下使用CImage进行重叠贴图,具体步骤包括先贴普通bitmap,再贴透明背景的PNG图片。通过示例代码展示实现过程,并且经过实际测试,该方法可行。
摘要由CSDN通过智能技术生成