高手请进,new Bitmap OutOfMemoryException错误 本帖最后由 fenger8293 于 2009-07-07 19:57:36 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 pictureBox1.Image = null; string fileFullPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\dumpFile\\" + selCombo.SelectedItem.ToString(); if (System.IO.File.Exists(fileFullPath)) { Stream inputStream =File.OpenRead(fileFullPath); Bitmap bitmap = new Bitmap(inputStream); pictureBox1.Image = bitmap; }try.. byte[] pData = readSmallFile(fileFullPath);Stream stream = new MemoryStream(pData);Bitmap bitmap = new Bitmap(pData); Bitmap构造函数可以接受byte[]吗?有一种可能,你直接把这个byte[]的Stream传给Bitmap的构造函数,它会认为这个Stream就是Bitmap格式的,所以内部把jpg格式当成bmp来解析,所以出错了。 检查你的 readSmallFile里的代码 ...可能获取byte时候错误..最简单的办法byte[] pData =System.IO.File.ReadAllBytes(fileFullPath); 当然2048*1538的图片只有500多K肯定不是BMP,我刚才说jpg也不一定是jpg,只是一个例子。 OutOfMemoryException是.net在申请托管内存的时候而有没有足够的内存空间造成的。这个异常应用程序无法捕获。还有一个就是楼主使用了非托管资源但是没有及时释放~stream 最后需要callstream.close();stream.Dispose();方法释放非托管资源或者是using(Stream inputStream =File.OpenRead(fileFullPath)){ .... inputStream.close();} 请问:e.Bounds.Left 指的是什么? 求助:如何判断我的DLL运行于Web还是桌面? 关于一个His中单位换算的问题 关于扩展屏的控制问题 高手请进呀 c#实现网页填充问题 关于静态变量初始化的问题 设置Excel单元格字体、单元格文本居中 如何从Windows服务中传回数据? 在VS环境XML与treeview怎么解决啊!急! 一个udpClient的问题。 c# 调用存储过程并且传入数组参数的问题 请教各位大牛一个选定控件的事件问题。
pictureBox1.Image = null;
string fileFullPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\dumpFile\\" + selCombo.SelectedItem.ToString();
if (System.IO.File.Exists(fileFullPath))
{
Stream inputStream =File.OpenRead(fileFullPath);
Bitmap bitmap = new Bitmap(inputStream);
pictureBox1.Image = bitmap;
}
try..
Stream stream = new MemoryStream(pData);
Bitmap bitmap = new Bitmap(pData); Bitmap构造函数可以接受byte[]吗?有一种可能,你直接把这个byte[]的Stream传给Bitmap的构造函数,它会认为这个Stream就是Bitmap格式的,所以内部把jpg格式当成bmp来解析,所以出错了。
最简单的办法byte[] pData =System.IO.File.ReadAllBytes(fileFullPath);
这个异常应用程序无法捕获。
还有一个就是楼主使用了非托管资源但是没有及时释放~
stream 最后需要call
stream.close();
stream.Dispose();方法释放非托管资源或者是
using(Stream inputStream =File.OpenRead(fileFullPath))
{
....
inputStream.close();
}