BLENDFUNCTION bfbk;
bfbk.BlendOp = AC_SRC_OVER;
bfbk.BlendFlags = 0;
bfbk.AlphaFormat = AC_SRC_ALPHA;
bfbk.SourceConstantAlpha = 0; CImage image;
int hRet = image.Load(m_strSourcePath);//m_strSourcePath源文件路径 if (hRet != S_OK)
return; for(int i = 0; i < image.GetWidth(); ++i)
{
for(int j = 0; j < image.GetHeight(); ++j)
{
unsigned char* pucColor = (unsigned char*)image.GetPixelAddress(i , j);
pucColor[0] = pucColor[0] * pucColor[3] / 255;
pucColor[1] = pucColor[1] * pucColor[3] / 255;
pucColor[2] = pucColor[2] * pucColor[3] / 255;
}
}
CDC* pDC = this->GetDC();
CDC SelectDC;
SelectDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC,image.GetWidth(),image.GetHeight());
SelectDC.SelectObject(bmp);
image.Draw(SelectDC.m_hDC,0,0,image.GetWidth(),image.GetHeight()); CFileFind finder;
BOOL bResult = finder.FindFile(m_strDesPath);//保存的目标路径
if(!bResult)
{
CLSID pngClsid;
CImage ImageSave;
ImageSave.Attach(bmp);
ImageSave.Save(m_strDesPath,Gdiplus::ImageFormatPNG);
}现在想要图片没有背景,怎么处理?
bfbk.BlendOp = AC_SRC_OVER;
bfbk.BlendFlags = 0;
bfbk.AlphaFormat = AC_SRC_ALPHA;
bfbk.SourceConstantAlpha = 0; CImage image;
int hRet = image.Load(m_strSourcePath);//m_strSourcePath源文件路径 if (hRet != S_OK)
return; for(int i = 0; i < image.GetWidth(); ++i)
{
for(int j = 0; j < image.GetHeight(); ++j)
{
unsigned char* pucColor = (unsigned char*)image.GetPixelAddress(i , j);
pucColor[0] = pucColor[0] * pucColor[3] / 255;
pucColor[1] = pucColor[1] * pucColor[3] / 255;
pucColor[2] = pucColor[2] * pucColor[3] / 255;
}
}
CDC* pDC = this->GetDC();
CDC SelectDC;
SelectDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC,image.GetWidth(),image.GetHeight());
SelectDC.SelectObject(bmp);
image.Draw(SelectDC.m_hDC,0,0,image.GetWidth(),image.GetHeight()); CFileFind finder;
BOOL bResult = finder.FindFile(m_strDesPath);//保存的目标路径
if(!bResult)
{
CLSID pngClsid;
CImage ImageSave;
ImageSave.Attach(bmp);
ImageSave.Save(m_strDesPath,Gdiplus::ImageFormatPNG);
}现在想要图片没有背景,怎么处理?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货