Foxtable(狐表)用户栏目专家坐堂 → [求助]PictureBox内存不足


  共有4021人关注过本帖树形打印复制链接

主题:[求助]PictureBox内存不足

帅哥哟,离线,有人找我吗?
nblwar
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6806 威望:0 精华:1 注册:2012/8/7 22:03:00
[求助]PictureBox内存不足  发帖心情 Post By:2016/5/19 14:56:00 [只看该作者]

PictureBox,

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "图像文件|*.JPG" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim img As Image = GetImage(dlg.FileName)
    
    Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1")
    
    If img IsNot Nothing Then
        pbx.Image = img



当加载的图像文件比较大,比如我加载一个50多M的图像,重复加载几次之后,就会出现内存不足的错误,必须用360加速球加速后才能继续使用
[此贴子已经被作者于2016/5/19 15:09:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
nblwar
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6806 威望:0 精华:1 注册:2012/8/7 22:03:00
  发帖心情 Post By:2016/5/19 14:58:00 [只看该作者]

而且从任务管理器里看进程,每加载一次图片,狐表进程的内存就会往上涨,却不会掉下来

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/19 15:39:00 [只看该作者]

方法一:

 

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog

If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim img As getimage(dlg.FileName)  
    Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1")   
    If img IsNot Nothing Then
        pbx.Image = img
    End If
    GC.Collect()
End If


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/19 15:42:00 [只看该作者]

方法二:

 

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog

If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim img As new bitmap(dlg.FileName)
   
    Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox1")
   
    If img IsNot Nothing Then
        if pbx.Image isnot nothing then pbx.Image.dispose
        pbx.Image = img
    End If

End If


 回到顶部
帅哥哟,离线,有人找我吗?
nblwar
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6806 威望:0 精华:1 注册:2012/8/7 22:03:00
  发帖心情 Post By:2016/5/19 15:56:00 [只看该作者]

方法一测试有效,方法二测试无效,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/19 16:28:00 [只看该作者]

方法二:肯定有效。每次都会把上一次的img的内存清空。如果你直接关闭窗口,你还要在beforeClose事件,清空一次

 回到顶部
帅哥哟,离线,有人找我吗?
haotinghua
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:459 积分:3842 威望:0 精华:0 注册:2016/8/21 3:43:00
  发帖心情 Post By:2019/7/18 17:50:00 [只看该作者]

PictureViewer的回收方法呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/7/19 8:30:00 [只看该作者]

这个没有办法处理。可以在窗口关闭的时候调用一下GC.Collect()

 回到顶部
帅哥哟,离线,有人找我吗?
xuezxz
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:427 积分:4529 威望:0 精华:0 注册:2012/3/7 23:19:00
  发帖心情 Post By:2020/2/12 11:58:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部