C# 将图像保存在内存中的最佳方法

C# 将图像保存在内存中的最佳方法,c#,image-processing,C#,Image Processing,我想在内存中保存1000-2000个图像。我尝试使用imageToByteArray并将它们存储在一个键值对中,但显然会导致内存泄漏。还有别的办法吗,不然我就迷路了? 将它们保留在内存中的原因是为了快速阅读,但这看起来是个坏主意 非常小的图像450250我将在winforms中使用它们。问题是,它们被分组在剪辑中,所以在运行时,我将每秒显示25张图片,这就是我需要内存的原因 提前感谢,您是否需要一次拍摄1000张图像 如果你把它们都保留下来,取决于图像的大小,从长远来看,你肯定会达到内存上限。您

我想在内存中保存1000-2000个图像。我尝试使用imageToByteArray并将它们存储在一个键值对中,但显然会导致内存泄漏。还有别的办法吗,不然我就迷路了? 将它们保留在内存中的原因是为了快速阅读,但这看起来是个坏主意

非常小的图像450250我将在winforms中使用它们。问题是,它们被分组在剪辑中,所以在运行时,我将每秒显示25张图片,这就是我需要内存的原因


提前感谢,

您是否需要一次拍摄1000张图像


如果你把它们都保留下来,取决于图像的大小,从长远来看,你肯定会达到内存上限。您需要有一些缓存机制来灵活地管理数据。可能您可以处理简单的数据库(如SQLite)来高效地管理它们,或者根据您的应用程序首选项使用您自己的智能缓存方式

如果您正在使用WinForms,您是否考虑过。从一系列表示不同帧的图像中生成它们并不难…

这完全取决于您的系统有多少
RAM
!你在说什么图像?小图标还是10M照片?后者不起作用,因为你很快就会失去记忆……你想用这些图像做什么?1000张图片太多了!尝试保留图像的缩略图,而不是整个图像-这将需要更少的资源。你想在哪里使用它们-表单、WPF、ASP等…我们在谈论什么样的应用程序?给我们更多的上下文,到目前为止,这看起来是一个非常糟糕的想法。考虑一个分组模式。除非你真的一次需要所有的图像,否则设计一个系统,你可以定义一个“组”的活动图像,并加载这些图像…将其他图像留在硬盘上。然后在逻辑点,即:每当“组”发生变化时,加载下一组图像,让其他图像过期。