2011-07-11 49 views
8

我需要编辑(增加高度)图像。 该文件大部分为5000 * 4000。当我创建一个大尺寸的bmp并在bmp实例上调用Graphics.DrawImage方法时,我发现内存已经达到峰值水平。使用大型位图会导致内存不足异常

如何摆脱内存不足异常?有没有办法在C#中使用大型位图?

+1

你能提供一些代码吗? – VMAtm

+1

它的一个内存问题检查这个http://stackoverflow.com/questions/5801652/bitmap-while-assigning-height-width-crashes/5802113#5802113 – V4Vendetta

+1

我想你有同样的问题,当你试图采取其他人有超过一个GB的内存为.dll。可能的答案可能是使用流并以块处理文件。 –

回答

0

这取决于你的应用程序特定requeirements,它不是从上你的帖子很清楚,但generaly,大的媒体文件(图片,声音,视频)工作,我觉得真的很不错的解决方案是

Memory Mapped Files

在内存映射文件中将yuor映像保存在磁盘上,并通过免费的yuor RAM尽可能地从大量数据中调整磁盘的大小,这些数据可能不需要快速访问(至少在那一刻)

希望这会有所帮助。 此致敬礼。

+0

这并不容易.net –

+0

这比以前更容易了,相信我,因为现在你已经包装了.NET类。 (仅适用于.NET Framework 4.0) – Tigran

+1

OOM从不*由RAM耗尽引起。位图已经使用MMF,创建更多只是让您更快地用完虚拟内存。 –

相关问题