C# 使用System.Drawing.Image加载图像时内存不足

C# 使用System.Drawing.Image加载图像时内存不足,c#,image,memory,image-size,C#,Image,Memory,Image Size,这就是我遇到问题的代码“内存不足” “photo”是大小为6400x6400的图像路径 有人知道吗?既然我假设这是在C#中,那么您的代码是在循环中还是在Paint事件中?这可以解释为什么它不起作用。如果多次加载多个图像或单个图像,当然会遇到“内存不足”异常。这是C#?我想答案可能就在这里 用户的首要回答: 在Image.FromFile文档中,如果出现以下情况,可以抛出OutOfMemoryException: 该文件没有有效的图像格式 -或- GDI+不支持文件的像素格式 检查您的图像格式

这就是我遇到问题的代码“
内存不足

photo
”是大小为
6400x6400
的图像路径


有人知道吗?

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

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

用户的首要回答:

Image.FromFile
文档中,如果出现以下情况,可以抛出
OutOfMemoryException

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

-或-

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

检查您的图像格式

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

另一个最重要的答案和思路:

来自用户:

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

使用完所有位图后,是否要处理它们?对于单个图像,这种情况是否会重复发生


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

它只是一个图像,而且图像的格式是*.jpg,它是由代码本身创建的。什么语言/框架?添加相关的标签。
System.Drawing.Image original = System.Drawing.Image.FromFile(photo);