猿问

C# 赢。表单 - 检索图像时内存不足

简短的

我想在我的图片框中显示一个 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 使用情况。

梦里花落0921
浏览 175回答 1
1回答

一只名叫tom的猫

遵循所有评论的建议,即确保您使用的是 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.}
随时随地看视频慕课网APP
我要回答