展开全部
jpg格式的可以直接透明,因为有透明通道,用vc的IPicture 接口
//显示JPEG图片
IPicture *pPic;
//load image from file stream
if(SUCCEEDED(OleLoadPicture(pStm, fstatus.m_size, TRUE,IID_IPicture, (LPVOID*)&pPic)))
{
long nWidth = 0, nHeight = 0; // 宽高,MM_HIMETRIC 模式,单位是0.01毫米
pPic->get_Width( &nWidth ); // 宽
pPic->get_Height( &nHeight ); // 高
CSize sz( nWidth, nHeight );
pDC->HIMETRICtoDP( &sz ); // 转换 MM_HIMETRIC 模式单位为 MM_TEXT 像素单位
pPic->Render(pDC->m_hDC, 0, 0, sz.cx, sz.cy,
0, nHeight, nWidth, -nHeight, NULL);
}
//显示JPEG图片
IPicture *pPic;
//load image from file stream
if(SUCCEEDED(OleLoadPicture(pStm, fstatus.m_size, TRUE,IID_IPicture, (LPVOID*)&pPic)))
{
long nWidth = 0, nHeight = 0; // 宽高,MM_HIMETRIC 模式,单位是0.01毫米
pPic->get_Width( &nWidth ); // 宽
pPic->get_Height( &nHeight ); // 高
CSize sz( nWidth, nHeight );
pDC->HIMETRICtoDP( &sz ); // 转换 MM_HIMETRIC 模式单位为 MM_TEXT 像素单位
pPic->Render(pDC->m_hDC, 0, 0, sz.cx, sz.cy,
0, nHeight, nWidth, -nHeight, NULL);
}
追问
不会com编程啊,能在Q上讨论一下吗?
追答
用gdi+直接加载png格式图片,不需要com
上面给的例子是加载jpg格式
加载png就更简单了
Graphics imgraphics(this->m_dcMemBg->GetSafeHdc());
Image img(L"bottle.png");
Status sttImg = imgraphics.DrawImage(&img, 10, 10);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询