//CImage 加载带半透明png函数
void LoadCImage(CImage*pImage,LPCTSTRpPath)
{
pImage->Load(pPath);
if (pImage->IsNull())
{
return;
}
CImageTransparent(pImage);
}
/* 解决CIMAGE 绘制半透图片背景不能半透的问题*/
void CImageTransparent(CImage*pImage)
{
if (pImage->GetBPP() == 32) //确认该图像包含Alpha通道
{
for (inti=0; i<pImage->GetWidth();i++)
{
for(int j=0; j<pImage->GetHeight(); j++)
{
byte*pByte = (byte*)pImage->GetPixelAddress(i, j);
pByte[0]= pByte[0] * pByte[3]/ 255;
pByte[1]= pByte[1] * pByte[3]/ 255;
pByte[2]= pByte[2] * pByte[3]/ 255;
}
}
}
}
在绘制时使用AlphaBlend来绘制即可