2

我有一个应用程序,我在其中以字节 [] 的形式获取大量图像,我将它们存储在内存中以供用户需求以后使用

我应该将它们存储在 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;
    }

谢谢!罗恩

4

1 回答 1

2

可以将图像存储在字典中。
键是唯一标识符(EG Int32)。

图像可以存储为 byte[] 或 BitmapImage

如果将其存储为 BitmapImage ,则必须预先转换 byte[]
但是您不需要按需转换

Dictionary<Int32, byte[]>  
or
Dictionary<Int32, BitmapImage> 

很确定 BitmapImage 会更大,因此按需转换将使用更少的内存。
你的问题说了很多图片,但你也要求更快的用户加载。
测试两种方式。

于 2013-08-25T18:44:50.500 回答