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

本文关键字:图像 内存不足 加载 Image System Drawing 使用 | 更新日期: 2023-09-27 18:16:20

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

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

"photo"是大小为6400x6400的映像的路径。

有人知道吗?

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

这是c#吗?我想答案就在这里。

内存不足。FromFile

用户回答:https://stackoverflow.com/users/31158/jordao

Image.FromFile文档中,如果:

可以抛出OutOfMemoryException:

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

或者

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

检查图片格式

同样,如果你想在加载图像后立即关闭流,你必须复制图像。请看这里。GDI+必须在图像的生命周期内保持流打开。

另一个值得考虑的顶级答案和线索:

System.Drawing.Image.FromFile()异常

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

值得知道的是,OutOfMemoryException并不总是真的意味着内存不足——特别是在处理文件时。我相信这也可能发生,如果你用完句柄的原因。

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

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

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