C# GDI+绘图出现内存不足问题
这两天开发一个图片放大功能,通过读取保存在数据库中的二进制图片流,在Datagridview中显示,然后选中列表中的图片进行放大的显示的功能。在 放大过程中出现“内存不足”的异常;经过网上的查询,最后发现原来是读取数据库二进制图片流时,进行图片流的关闭,与清空。其实不是内存不足,问题很明晰 了【二进制打开了图片,关闭流再画时就会报内存不足】,画图时,它所用到的流必须一直保持打开状态,你关闭了,还怎么画?很多底层的模块会报告“内存不足”,不是因为内存不足,而是由于遇到了野指针。贴出部分代码以作解释:
//将Datagridview中的图片读取的内存流
MemoryStream ms=new MemoryStream((byte[])datagridview1.Rows[RowIndex].cells["FSPic"].value);
ms.Position=0;
pictureBox1.Image=Image.FromStream(ms);
//ms.close();//释放内存图片流----------此处被释放引发的异常
//ms.Dispose();
此处被释放掉下面的GDI+ 操作内存流就出现异常。