gdi+ 的bitmap 无法加载图片

enzoo 2009-11-17 08:10:31


strPath 是一个CString类型的图片路径

Bitmap img(strPath);

Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(100, 75, NULL, NULL));
pThumbnail->GetHBITMAP(Gdiplus::Color(0, 255, 255, 255), &hBmp);

上面代码运行时出现
Unhandled exception at 0x00f8a9b3 in mfcTester.exe: 0xC0000005: Access violation reading location 0x00000004.

在我单步调试的时候发现Bitmap img(strPath)根本就没有把图片加载成功,在static_cast后pThumbnail的值为0

我在别人的源代码里却可以正常运行和上面差不多的代码


// load the bitmap
strPath.Format( TEXT("%s\\%s"), m_strImageDir, *iter );

USES_CONVERSION;
Bitmap img( A2W(strPath) );
Bitmap* pThumbnail = static_cast<Bitmap*>(img.GetThumbnailImage(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, NULL, NULL));

// attach the thumbnail bitmap handle to an CBitmap object
pThumbnail->GetHBITMAP(NULL, &hBmp);
pImage = new CBitmap();
pImage->Attach(hBmp);

请问这是为什么,上下两段代码没有什么区别吧,它么加载同一张图片,上面的失败了,下面的成功~~
下面的代码时候是在ansi下运行的,上面的是unicode
...全文
152 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziplj 2009-11-17
  • 打赏
  • 举报
回复
额... 最近出这种问题的人很多...
建议楼主搜索一下QGdiPlus.h 简单的封装了一下Gdi+ 这样就避免了初始化 等等麻烦 而且还能检查GDI+的内存泄露
enzoo 2009-11-17
  • 打赏
  • 举报
回复
对不起,我没有初始化gdi+

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧