您的位置:首页 > 其它

CImage 处理带透明度png方法

2012-01-30 21:54 204 查看
//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来绘制即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: