将嵌入的图像资源放入字节数组的全局数组中(C#)
Putting embedded image resources into a global array of byte arrays (C#)
我正在寻找一种方法来将一堆嵌入的图像加载到可以通过引用调用的字节数组的全局数组中。或者如果有更聪明的方法来做到这一点,那也太好了。
目的如下:我有少量(最终可能是 5-6 张)空白图像,这些图像将被调用、修改并写入文件(有时只是 .tif 文件,有时是嵌入的到 .xml 文件中)。这是应用程序的主要功能,图像被调用很多次(应用程序的典型使用可能会生成 500-1000 张图像)。现在我正在使用单个嵌入式图像作为概念证明。我还希望用户能够选择他们可能使用的图像,然后每个图像将根据创建的图像随机分配。换句话说,可能有五个可能的基本图像,如果用户选中其中两个,则每次调用图像时我希望它在他们选择的两个图像之间随机选择。
该数组允许每次轻松 "random" 选取,并且还将每个加载的字节数组保存在内存中以便更快地访问(我相信)。
因此,在启动时将所有图片资源加载到一个数组中,然后每次从该数组中复制需要的图片,根据需要修改并保存。
想法?
ResourceManager
确实在内部进行了缓存,但是除非您拥有程序集特定(嵌入式)资源或文化特定资源,否则没有理由使用它。如果您确实最终使用了 ResourceManager
,请务必使用静态缓存引用,而不是在每个请求事件上创建一个新的 ResourceManger 实例。
如果您想从磁盘上的文件中加载基本图像,可以将它们加载为 Image
或 byte[]
格式,以更便于重复修改的格式为准。您可以创建自己的缓存 class,使用数组 T[]
、List<T>
或 Dictionary<key, T>
作为容器(类型 T
可以是 Image
或 byte[]
取决于您的偏好)。
从缓存中允许的项目子集中随机选择是如此微不足道,因此这不应该成为影响您决定如何 cache/store 您的资源的因素。
我正在寻找一种方法来将一堆嵌入的图像加载到可以通过引用调用的字节数组的全局数组中。或者如果有更聪明的方法来做到这一点,那也太好了。
目的如下:我有少量(最终可能是 5-6 张)空白图像,这些图像将被调用、修改并写入文件(有时只是 .tif 文件,有时是嵌入的到 .xml 文件中)。这是应用程序的主要功能,图像被调用很多次(应用程序的典型使用可能会生成 500-1000 张图像)。现在我正在使用单个嵌入式图像作为概念证明。我还希望用户能够选择他们可能使用的图像,然后每个图像将根据创建的图像随机分配。换句话说,可能有五个可能的基本图像,如果用户选中其中两个,则每次调用图像时我希望它在他们选择的两个图像之间随机选择。
该数组允许每次轻松 "random" 选取,并且还将每个加载的字节数组保存在内存中以便更快地访问(我相信)。
因此,在启动时将所有图片资源加载到一个数组中,然后每次从该数组中复制需要的图片,根据需要修改并保存。
想法?
ResourceManager
确实在内部进行了缓存,但是除非您拥有程序集特定(嵌入式)资源或文化特定资源,否则没有理由使用它。如果您确实最终使用了 ResourceManager
,请务必使用静态缓存引用,而不是在每个请求事件上创建一个新的 ResourceManger 实例。
如果您想从磁盘上的文件中加载基本图像,可以将它们加载为 Image
或 byte[]
格式,以更便于重复修改的格式为准。您可以创建自己的缓存 class,使用数组 T[]
、List<T>
或 Dictionary<key, T>
作为容器(类型 T
可以是 Image
或 byte[]
取决于您的偏好)。
从缓存中允许的项目子集中随机选择是如此微不足道,因此这不应该成为影响您决定如何 cache/store 您的资源的因素。