vc win32 gdi+ 怎么显示PNG图片

在使用GDI+加载并显示PNG图片时,遇到图片边缘渐变透明区域显示为黑框的故障。代码中通过LoadImgFormRs函数从资源加载PNG,然后使用Gdiplus::Bitmap和Gdiplus::Image进行处理,最后通过StretchBlt显示。问题可能出在位图转换或透明处理上。
摘要由CSDN通过智能技术生成

各位大哥看看,为什么我显示的PNG图片有黑框???PNG图片的边缘为渐变透明的。渐变透明的地方变成了黑框

BOOL OnEraseBkgnd()
{

 HBITMAP hBitmap;
 BITMAP m_bitmap;


 hBitmap=LoadImgFormRs(IDR_PNG_StatusBar,L"PNG");
 GetObject(hBitmap,sizeof(BITMAP),&m_bitmap);


 HDC hDC,hDCmem;
 PAINTSTRUCT ps;


 hDC=BeginPaint(g_hWnd,&ps);
 hDCmem=CreateCompatibleDC(hDC);
 SelectObject(hDCmem,hBitmap);


 RECT rc;
 GetClientRect(g_hWnd,&rc);


 StretchBlt(hDC,0,0,rc.right,rc.bottom,hDCmem,0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,SRCCOPY); 
 EndPaint(g_hWnd,&ps);
 DeleteDC(hDCmem);
 DeleteObject(hBitmap);
 return TRUE;
}

 

 

LoadImgFormRs函数返回HBITMAP 

 

HBITMAP  LoadImgFormRs(UINT pResourceID,LPCTSTR pResourceType)
{
 GdiplusStartupInput gdiplusStartupInput;
 ULONG_PTR  m_gdiplusT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值