尝试更改图像时内存不足崩溃?

时间:2013-12-01 23:43:09

标签: c#

(C#)当我尝试使用从文件中打开的“图片框”设置图像时出现内存不足的崩溃。

我的代码:

    string file = openImageBox.Text; // Our file 
    if (File.Exists(file))
    {
        File.Open(file, FileMode.Open); // Open the file for use.
        Output.Text = "File Open Success!"; //Informing the user on how sucessful they are. 
        Output.ForeColor = System.Drawing.Color.Black;
        Image img = Image.FromFile(file);
        Display.Image = img;
    }

1 个答案:

答案 0 :(得分:4)

可能不是正确的答案(谁知道......它可能会导致各种各样的问题)。

您无需“打开文件即可使用”。这是持有您不需要的文件的句柄。只需直接致电Image.FromFile,即可正常使用。

所以删除它:

File.Open(file, FileMode.Open); // Open the file for use.

编辑:

为了完整性(并帮助您学习),如果要关闭它,则需要存储对流的引用。我告诉你上面删除的内容是文件的句柄。该文件现在基本上是打开的..直到你关闭它。

对于其他代码(您没有使用像Image.FromFile这样的方法),您可以存储文件的句柄,以便关闭它...或使用using语句关闭它适合你。

选项A:

var stream = File.Open(file, FileMode.Open);

// do stuff here

stream.Close();

选项B(首选):

using (var stream = File.Open(file, FileMode.Open)) {

    // do stuff here

} // stream.Close automatically called for you