CImage 类Load图片以后内存使用很大的问题

crystalyay 2010-09-14 05:30:00
我的程序中需要显示几副非常大的图片(700多k的jpg格式),为了显示速度,所以在程序开始的时候就把图片Load进来.
然后运行程序发现,内存使用竟然有100多兆..
单步以后发现在Load图片的时候 每load一幅 就增加16兆左右内存使用..不知道这个有没有解决方法..求大虾帮忙
,只有这些分数了,请见谅
...全文
271 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
default_ 2010-10-14
  • 打赏
  • 举报
回复
用同一个CImage对象Load多次的话,要先Destroy原来的
向立天 2010-10-14
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
kang3252 2010-09-14
  • 打赏
  • 举报
回复
我也遇到过相似问题,加载后,图片都变大了!显示不正常!
我是在别人的工程里改,自己加载的图片就变大,所以显示不正常!
crystalyay 2010-09-14
  • 打赏
  • 举报
回复
如果是没绘制一次就加载一次是不是会影响速度呢...
crystalyay 2010-09-14
  • 打赏
  • 举报
回复
ps:我的CImage的对象是类的成员变量,因为要经常切换图片,所以在程序一开始的就加载进去的
crystalyay 2010-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 teleinfor 的回复:]
。。。。我刚发现CImage是个好东西呢。我刚加载的图片,大概大小440KB,怎么没有增加多少内存呢?你怎么加载的?我的是。。。

C/C++ code
if(!PathFileExists(strImgFile)) //判断图片路径是否存在
{
return FALSE;
}

CStatic* pImgWnd……
[/Quote]

我也是CImage m_Image;
m_Image.Load(strFile);
为什么我就这么多呢
teleinfor 2010-09-14
  • 打赏
  • 举报
回复
。。。。我刚发现CImage是个好东西呢。我刚加载的图片,大概大小440KB,怎么没有增加多少内存呢?你怎么加载的?我的是。。。
	if(!PathFileExists(strImgFile))        //判断图片路径是否存在
{
return FALSE;
}

CStatic* pImgWnd = (CStatic*)GetDlgItem(IDC_STATIC_IMG);

CRect rect;
pImgWnd->GetClientRect(&rect);
CImage logoImg; //使用图片类
logoImg.Load(strImgFile); //装载路径下图片信息到图片类
CDC* pDC = pImgWnd->GetWindowDC(); //获得显示控件的DC
logoImg.Draw(pDC->m_hDC,rect); //图片类的图片绘制Draw函数
ReleaseDC(pDC);

return TRUE;
crystalyay 2010-09-14
  • 打赏
  • 举报
回复
加载180k的图片内存使用量还是会增加16兆左右..

15,978

社区成员

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

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