首页 > 编程知识 正文

PNG透明片,透明片.png

时间:2023-05-03 06:41:13 阅读:258531 作者:4669

    微软提供了CImage类,使用CImage可以非常方便显示PNG图片。

    1.定义一个成员变量

CImage m_img;

    2.导入png

void LoadPNG(CImage &cimg, const CString& strPath){ if(!PathFileExists(strPath)) { printf("png did not exist.n"); return; } if(!cimg.IsNull()) { cimg.Destroy(); } cimg.Load(strPath);}

    3.使用的时候只要

LoadPNG(m_img, _T("c:\某张图片.png"));

    4.显示png

void CDlg::OnPaint(){ CPaintDC dc(this); if (!m_img.IsNull()) { //透明显示png if (m_img.GetBPP() == 32) //确认该图像包含Alpha通道 { for (int i=0; i<m_img.GetWidth(); ++i) { for (int j=0; j<m_img.GetHeight(); ++j) { byte *pByte = (byte *)m_img.GetPixelAddress(i, j); pByte[0] = pByte[0] * pByte[3] / 255; pByte[1] = pByte[1] * pByte[3] / 255; pByte[2] = pByte[2] * pByte[3] / 255; } } } //m_img.Draw(dc.m_hDC, 0, 0); m_img.Draw(dc.m_hDC, m_imgRc); //在一个区域中显示 }}





版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。