-2
System.Drawing.Image original = System.Drawing.Image.FromFile(photo);

这就是我遇到问题的代码“ Out of memory。”

photo”是图片的路径,大小为6400x6400.

有人知道吗?

4

2 回答 2

3

这是C#吗?我想答案可能就在这里。

内存不足 Image.FromFile

来自用户的最佳答案:https ://stackoverflow.com/users/31158/jordao

Image.FromFile文档中,OutOfMemoryException可以在以下情况下抛出 an:

该文件没有有效的图像格式。

-或者-

GDI+ 不支持文件的像素格式。

检查您的图像格式。

此外,如果要在加载图像后立即关闭流,则必须复制图像。看看这里。GDI+ 必须在图像的生命周期内保持流打开。

然后要考虑的另一个最佳答案和线程:

System.Drawing.Image.FromFile() 上的内存不足异常

来自用户:https ://stackoverflow.com/users/22656/jon-skeet

值得知道 OutOfMemoryException 并不总是意味着它内存不足——尤其是在处理文件时。我相信如果您出于某种原因用完手柄,也会发生这种情况。

您是否在处理完所有位图后将其处理掉?对于单个图像,这是否会重复发生?

另外,我想补充一下-您是否使用您的代码保存了此文件并尝试在另一个图像查看器中查看它?如果创建不正确,它可能会损坏。

于 2013-05-30T17:54:49.043 回答
0

由于我假设这是在 C# 中,您的代码是在循环中还是在Paint事件中?这可以解释为什么它不起作用。如果您多次加载多个图像或单个图像,您当然会遇到“内存不足”异常。

于 2013-05-30T17:48:58.687 回答