使用 GDI+ 和 Qt Pixmap C++ 时的内存泄漏问题

问题描述

我正在使用 gdi+ 位图加载不受支持的图像文件,然后将其转换为 QImage。有代码

QImage cover;

Gdiplus::GdiplusstartupInput gdiplusstartupInput;
ULONG_PTR gdiplusToken;

Gdiplusstartup(&gdiplusToken,&gdiplusstartupInput,NULL);
Gdiplus::Bitmap * bitmap = Gdiplus::Bitmap::FromFile(L"cover.png");

HBITMAP handletoSliceRet = NULL;
bitmap->GetHBITMAP(Gdiplus::Color(0,0),&handletoSliceRet); // <- At this line used memory increase by ~5mb!

Qpixmap pixmap = QtWin::fromHBITMAP(handletoSliceRet);

cover = pixmap.toImage();

“cover.png”文件大小为 184kb,我不明白为什么在读取这个文件时内存增长了这么多。你有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)