A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李景荣 中级黑马   /  2013-2-13 21:25  /  1452 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李景荣 于 2013-2-19 20:47 编辑

photoFile是我定义的一个存储文件全路径的一个数组
photoNames是我定义的一个存储文件名的集合
我把图片放在bin\Debug\photo这个文件夹下了
代码如下:
Random r = new Random();
int i = r.Next(0, photoFile.Length);
pictureBox1.Image = Image.FromFile(Application.StartupPath + "\\photo\\"+photoNames[nub]);
我写在timer组件里面,结果更换了几张图片之后报错,提示内存不足
求大虾指点

5 个回复

倒序浏览
我把出错的地方try起来了,但是不知道为什么会报内存不足的错误呢?求大神指点迷津啊!!!!!!
回复 使用道具 举报
本帖最后由 岳珅 于 2013-2-18 22:45 编辑

你这个。。。应该是图片大小超出可显示的大小的问题。

增加一段程序将图片大小转换为显示的大小或者自己手动调整图片的大小后问题就解决了。

给你几个解决方法吧- -
更改 Picturebox 的 SizeMode ,
atuosize  Picturebox的大小会随着图片的大小而更改
ScretchImage  强制使图片的大小跟picturebox的大小相同,图片的长宽比例会发生改变
CenterImage  图片大小不变,图片在picturebox中居中显示,如果图片大小超过picturebox大小,图片会显示不全

根据情况自己选择吧- -应该就不会在出错了
回复 使用道具 举报
岳珅 发表于 2013-2-18 22:41
你这个。。。应该是图片大小超出可显示的大小的问题。

增加一段程序将图片大小转换为显示的大小或者自己手 ...

多谢了,我的sizemode设置的是zoom,还是不太明白为什么和这个有关系
回复 使用道具 举报
是内存资源没有释放吧,你释放一下 加个代码pictureBox1.Dispose();


            Random r = new Random();
            int i = r.Next(0, photoFile.Length);
            pictureBox1.Image = Image.FromFile(Application.StartupPath + "\\photo\\" + photoNames[nub]);
           pictureBox1.Dispose();
回复 使用道具 举报
李景荣 发表于 2013-2-18 23:15
多谢了,我的sizemode设置的是zoom,还是不太明白为什么和这个有关系

嘿嘿,搞定了就编辑天子改成已完成,方便今后其他人搜索嘛
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马