我有一个应用程序,我以byte []的形式获得了大量图像, 我将它们存储在内存中供以后用户需求使用
我应该将它们存储在byte []中吗?或者还有另一种方法来存储它们以便更快地加载用户需求?
我加载图片的代码就像这样
private static BitmapImage LoadImage(byte[] imageData)
{
if (imageData == null || imageData.Length == 0) return null;
var image = new BitmapImage();
using (var mem = new MemoryStream(imageData))
{
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
image.StreamSource = mem;
image.EndInit();
}
image.Freeze();
return image;
}
谢谢! 罗恩
答案 0 :(得分:2)
可以将图像存储在字典中 关键是唯一标识符(E.G.Int32)。
图像可以存储为byte []或BitmapImage
如果将其存储为BitmapImage,则必须在前面转换byte [] 但是,您不需要按需转换
Dictionary<Int32, byte[]>
or
Dictionary<Int32, BitmapImage>
非常确定BitmapImage会更大,因此按需转换会占用更少的内存 你的问题说了很多图片,但你也要求更快的用户加载 测试两种方式。