2

バイト[]の形式で多くの画像を取得するアプリケーションがあります。ユーザーの要求が後で使用できるように、それらをメモリに保存します

それらをバイト[]に格納する必要がありますか? または、ユーザーの要求に応じてすばやくロードするためにそれらを保存する別の方法がありますか?

画像をロードする私のコードは次のようになります

    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 に答える