我想在我的PictureBox中显示一个PNG图像。在运行时,软件会向用户询问图像的路径。
这是我现在的代码
picturebox1.Image = null;
OpenFileDialog ofDlg = new OpenFileDialog();
ofDlg.Filter = "Image files|*.png";
if (DialogResult.OK == ofDlg.ShowDialog())
{
picturebox1.Image = Image.FromFile(ofDlg.FileName); //Out of memory.
}
直到我得到 25.7 MB(8827 x 11350像素)的图像之前,一切都可以正常工作。
我知道你们可能都建议我应该获得该图像的较浅版本,但问题是该软件用于缩放图像以详细查看图像。所以我不能不惜一切代价调整它的大小。
现在,只要我运行上面的代码,它就会给我一个例外
内存不足。
我不明白这里出了什么问题,因为我的PC上安装了 8GB的内存,那么内存怎么了?下面是出现此错误消息时我的CPU使用率。
答案 0 :(得分:2)
遵循所有评论的摘要,即确保您使用的是64位
但是您还需要确保要处理图像,否则迟早会耗尽内存。以下只是一个例子
if(picturebox1.Image != null)
picturebox1.Image.Dispose();
picturebox1.Image = null;
OpenFileDialog ofDlg = new OpenFileDialog();
ofDlg.Filter = "Image files|*.png";
if (DialogResult.OK == ofDlg.ShowDialog())
{
picturebox1.Image = Image.FromFile(ofDlg.FileName); //Out of memory.
}