图片 1
热门资源

用CImage类贴透明的png图片报错

图片 1

我想把它放在一个按钮里,但报错了,是图片路径的问题吗本人小白一个,不是很懂CImage类,希望有大佬指点一下代码voidCzdljDlg::OnBnClickedButton2(){CImageimg;CStringipath=_T(“C:UsersMACDesktop最短路径-副本zdljrest11——2.png”);if(IsIconic()){CPaintDCdc(this);//用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND,reinterpret_castWPARAM(dc.GetSafeHdc()),0);//使图标在工作区矩形中居中intcxIcon=GetSystemMetrics(SM_CXICON);intcyIcon=GetSystemMetrics(SM_CYICON);CRectrect;GetClientRect(rect);intx=(rect.Width()-cxIcon+1)/2;inty=(rect.Height()-cyIcon+1)/2;//绘制图标dc.DrawIcon(x,y,m_hIcon);}else{CPaintDCdc(this);if(!img.IsNull())img.Destroy();img.Load(ipath);//load载入,否则不显示TransparentPNG(img);//调用透明化处理函数if(!img.IsNull())img.Draw(dc.m_hDC,15,14);CDialogEx::OnPaint();}}voidCzdljDlg::TransparentPNG(CImage*png){for(inti=0;ipng-GetWidth();i++)//遍历像素处理{for(intj=0;jpng-GetHeight();j++){unsignedchar*pucColor=reinterpret_castunsignedchar*(png-GetPixelAddress(i,j));pucColor[0]=pucColor[0]*pucColor[3]/255;pucColor[1]=pucColor[1]*pucColor[3]/255;pucColor[2]=pucColor[2]*pucColor[3]/255;}}}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章