显示jpg的问题

yzbsd 2010-01-07 02:43:25
在窗体上放置了一个pictureBox1用来显示jpg,代码如下:
using (Bitmap bmp = new Bitmap(@"\Program Files\pic\1.jpg"))
{
pictureBox1.Image = Image.FromHbitmap(bmp.GetHbitmap());
}
可以正常显示,但是在调试窗口中输出如下信息:
在 System.InvalidCastException 中第一次偶然出现的“System.Drawing.dll”类型的异常
有异常抛出,但是程序可以正常运行,如果连续显示多张图片,运行一段时间程序就会报内存不够退出。
上面的代码哪个地方有问题?
...全文
140 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyondma 2010-01-12
  • 打赏
  • 举报
回复
异常你不用管,你退出是因为你的内存不够了。把你不用的IMAGE DISPOSE了,然后再GC。COLLECT。
shmilylee 2010-01-12
  • 打赏
  • 举报
回复
检查图片大小,太大会异常的!
我的手机是320W像素的摄像头,拍出的照片无法直接显示在界面上,内存溢出,改成200W以下的水平才能正常显示
Jake_Lin 2010-01-12
  • 打赏
  • 举报
回复
using 只能处理dispose的对象,对于cast也就是转型没有任何关系的。你的问题是转型出错。
世外涛缘 2010-01-07
  • 打赏
  • 举报
回复
验证了同样的代码,没有任何异常。
怀疑可能是楼主使用的图片有问题。
yanbo_hu 2010-01-07
  • 打赏
  • 举报
回复
你看一下帮助文档中的

using 关键字 [C#]

应该能解决问题吧。
yzbsd 2010-01-07
  • 打赏
  • 举报
回复
pictureBox1.Image = new Bitmap(@"\Program Files\pic\1.jpg");
执行完这一句,整个程序就这一行代码就提示这个异常,没有其它代码了
世外涛缘 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yzbsd 的回复:]
c#有delete这一用法吗?
[/Quote]
没有。

楼主确认InvalidCastException是在该行代码抛出的么?
yzbsd 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yzbsd 的回复:]
jiangyongtao

pictureBox1.Image = new Bitmap(@"\Program Files\pic\1.jpg");
这种方法还是提示了InvalidCastException异常
[/Quote]
写个调用是什么意思?
tan124 2010-01-07
  • 打赏
  • 举报
回复
using 这里应该重新写个调用
yzbsd 2010-01-07
  • 打赏
  • 举报
回复
jiangyongtao

pictureBox1.Image = new Bitmap(@"\Program Files\pic\1.jpg");
这种方法还是提示了InvalidCastException异常
yzbsd 2010-01-07
  • 打赏
  • 举报
回复
c#有delete这一用法吗?
世外涛缘 2010-01-07
  • 打赏
  • 举报
回复
C#不要delete。
楼主的这行代码处了问题:
pictureBox1.Image = Image.FromHbitmap(bmp.GetHbitmap());
才提示了InvalidCastException该异常。
其实不需要转换,直接将Bitmap类型赋值给Image属性就可以了。

pictureBox1.Image = bmp;
dina656 2010-01-07
  • 打赏
  • 举报
回复
C# new了以后不需要delete吗?

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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