(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;
    }

最佳答案

可能不是正确的答案(谁知道..这可能会引起您各种各样的问题)。

您不需要“打开文件以供使用”。这可以处理不需要的文件。只需直接调用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

关于c# - 尝试更改图像时出现内存不足崩溃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20318686/

10-10 11:06