(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
这样的方法),您可以存储文件的句柄以便关闭它......或者使用 使用
语句为您关闭它。
选项 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/