我需要动态编辑(增加高度)图像。 该文件的尺寸大多为5000 * 4000。当我创建一个大尺寸的bmp并在bmp实例上调用Graphics.DrawImage方法时,我看到内存会达到峰值。
如何摆脱Out Of Memory异常?有没有办法在c#中使用大位图?
答案 0 :(得分:4)
问题是操作所需的大量内存。你的是GigBytes,所以解决方案可能是使用Stream并以块的形式处理文件。
或者最好的选择是使用一些第三方库。以下是.Net的一些
还要看看这个问题。
https://stackoverflow.com/questions/158756/what-is-the-best-image-manipulation-library
答案 1 :(得分:0)
这取决于你的应用程序特定的重新发现,从你的帖子不是很清楚,但通常,使用大媒体文件(图像,声音,视频)我认为真的很好的解决方案是
将yuor图像保存在内存映射文件中的磁盘上并通过磁盘调整大小,尽可能多地使用免费的内存来自您可能不需要快速访问的大量数据(在至少时刻)
希望这会有所帮助。 问候。