C# 赢。表单 - 检索图像时内存不足
C# Win. Form - Out of memory when retrieving an Image
简介
我想在 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 像素) 的图像之前,一切都很好。
我知道你们可能都建议我应该得到这个图像的较浅版本,但问题是这个软件用于缩放图像以查看图像的细节。所以我不能不惜一切代价调整它的大小。
现在,每当我 运行 上面的代码时,它都会给我异常
Out of memory.
我不明白这是什么问题,因为我的 PC 上安装了 8GB RAM 那么内存不足是怎么回事?以下是出现此错误消息时我的 CPU 用法。
遵循所有评论的建议,即确保您使用的是 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.
}
简介
我想在 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 像素) 的图像之前,一切都很好。
我知道你们可能都建议我应该得到这个图像的较浅版本,但问题是这个软件用于缩放图像以查看图像的细节。所以我不能不惜一切代价调整它的大小。
现在,每当我 运行 上面的代码时,它都会给我异常
Out of memory.
我不明白这是什么问题,因为我的 PC 上安装了 8GB RAM 那么内存不足是怎么回事?以下是出现此错误消息时我的 CPU 用法。
遵循所有评论的建议,即确保您使用的是 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.
}