首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OutofMemoryException -加载超大图像

OutofMemoryException -加载超大图像
EN

Stack Overflow用户
提问于 2010-08-24 12:47:43
回答 2查看 1.7K关注 0票数 6

我试图加载一个非常大的图像(14473x25684),但我遇到了内存限制。

下面是一个简单的程序来演示这个问题:

代码语言:javascript
复制
static void Main(string[] args)
{
    string largeimage = @"C:\Temp\test_image.jpg"; // 14473x25684

    Image i = Bitmap.FromFile(largeimage); // OutofMemoryException was unhandled
}

现在我明白了,这个问题与我有多少物理内存无关,而是一个寻址限制。我能做些什么来绕过这个限制吗?

图像确实是有效的,在Photoshop (VM大小: 916MB)和ACDSee中可以很好地打开。也不要费心在谷歌上搜索尺寸,因为列出的尺寸不准确。:)

谢谢您抽时间见我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-24 12:53:13

Bitmap类将需要大约1.5 of的内存来容纳该实例。.NET内存分配器通常在1 1GB标记附近阻塞。

票数 4
EN

Stack Overflow用户

发布于 2010-08-24 12:52:21

操作系统无法分配连续的内存量。对此您所能做的就是使用MemoryFailPoint和catch InsufficientMemoryException。但这只会让你避免应用程序崩溃。

对我来说,要打开这么大的文件,你应该使用二进制阅读器并通过System.Drawing绘制一个文件。

这是一个很好的问答When is it OK to catch an OutOfMemoryException and how to handle it?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3553637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档