GDI+ 占用内存问题

清水迎朝阳
博客专家认证
2011-09-26 04:22:30


DrawImage(m_pBmp,destRC,0,0,source_w,source_h,UnitPixel);


原图很大13M,我本意是用这个语句只将原图中指定的部分画到m_pBmp中,但是经过多次试验发现:



当destRC.width<source_w&&destRC.height<source_h时 ,程序占的内存为30M

而一旦不符合这个条件时,程序占140M

不知道是什么原因 ?

按试验来说:

当将原图缩小时,画图时,只将处于视图的部分绘制 可以减少内存使用

当将原图放大时,无论你将原图的哪一部分绘制到视图中,所用的内存与图片整体绘制到内存中一般 不知是什么原因。 不能减少内存的使用





也就是说:使用GDI+ 缩小图片时 ,能够只拷贝图片的部分区域,从而达到减少内存目的。

但是,使用GDI+放大图片时,虽也能拷贝图片部分区域,但使用的内存 与将原图片整个拷贝时使用的内存相同。
...全文
173 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-10-19
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
DelphiTeacher 2011-09-27
  • 打赏
  • 举报
回复
GDI+缺点就是速度慢和内存占用大,
我一般在使用时,
建议将 GDI+的位图给制到BITMAP,
再释放 GDI+位图。。
然后对BITMAP操作。。
GDI+和 GDI配合使用。
清水迎朝阳 2011-09-27
  • 打赏
  • 举报
回复
ctrl+alt+delete 就可以查看内存咯呀
lgstudyvc 2011-09-26
  • 打赏
  • 举报
回复
你是怎么缩放的?

图放大,你的内存也放大了?信息哪儿来的?

15,979

社区成员

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

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