将嵌入的图像资源放入字节数组的全局数组(C#)

时间:2015-05-28 18:13:45

标签: c# arrays resources

我正在寻找一种方法将一堆嵌入的图像加载到可以通过引用调用的全局字节数组中。或者,如果有更聪明的方法,那也很棒。

目的如下:我有一小部分(最后可能是5-6)空白图像将被调用,修改和写入文件(有时只是.tif文件,有时嵌入到文件中.xml文件)。这是应用程序的主要功能,图像被大量调用(应用程序的典型用法可能会生成500-1000个图像)。现在我使用单个嵌入式图像作为概念证明。我还希望用户能够选择他们可能使用的图像,然后根据创建的图像随机分配每个图像。换句话说,如果用户检查其中两个,可能有五个可能的基本图像,每次调用图像时我希望它在它们选择的两个选项之间随机选择。

数组允许每次轻松“随机”选择,并且还保留每个加载到内存中的字节数组,以便更快地访问(我相信)。

因此,在启动时将所有图像资源加载到数组中,然后每次复制所需的图像形式,修改它并根据需要保存。

思想?

1 个答案:

答案 0 :(得分:0)

ResourceManager在内部进行缓存,但除非您拥有特定于程序集(嵌入)的资源或特定于文化的资源,否则没有过于令人信服的理由使用它。如果您最终使用ResourceManager,请务必使用静态缓存引用,而不是在每个请求事件上创建新的ResourceManger实例。

如果您想要从磁盘上的文件加载基本图像,则可以将它们加载到Imagebyte[]格式中,以便于重复修改更方便。您可以使用数组T[]List<T>Dictionary<key, T>作为容器创建自己的缓存类(类型T可以是Imagebyte[]取决于您的偏好。)

从缓存中的项目的允许子集中随机选择是非常简单的,这不应该是影响您如何缓存/存储资源的决定因素。