Как загрузить файлы изображений BMP в ImageSource элемента управления Image с меньшим использованием памяти и с хорошей производительностью

Мы хотим загрузить изображения BMP в наше приложение. Пожалуйста, предложите, как загрузить файлы изображений BMP в ImageSource элемента управления Image с меньшим использованием памяти и с хорошей производительностью?

Мы использовали приведенные ниже коды, мы можем загружать изображения, но для загрузки требуется много времени с использованием большего количества памяти (даже с использованием DecodePixelHeight/Width )

var image = new BitmapImage();
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
image.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
image.UriSource = new Uri(FullName);     //FullName is image name with path
image.DecodePixelHeight = 150;
image.EndInit();
image.Freeze();
ImageSource = image;

Нам нужно загрузить папку размером 1 ГБ с файлами bmp (каждый размером 5-10 МБ). На данный момент начальная загрузка занимает 6 минут. Но другие изображения, такие как файлы JPG и PNG объемом 1 ГБ, загружаются менее чем за 30 секунд.


person Shobha M    schedule 09.07.2018    source источник
comment
Очевидно, вы сделали все возможное, чтобы минимизировать потребление памяти. Сколько из этих изображений вы собираетесь загрузить? Осталось попробовать: загрузить BitmapImage напрямую из FileStream вместо Uri.   -  person Clemens    schedule 09.07.2018
comment
Также обратите внимание, что только декодеры PNG и JPEG изначально поддерживают DecodePixelWidth/Height. Остальные декодируют исходный размер и впоследствии масштабируют растровое изображение.   -  person Clemens    schedule 09.07.2018
comment
WPF не очень хорош для загрузки огромного количества больших изображений. Пожалуйста, определите, что является хорошей производительностью для вас. Должен ли он загружаться быстро или показывать быстро? О каких размерах изображения идет речь?   -  person dymanoid    schedule 09.07.2018
comment
Взгляните на этот пример, чтобы узнать, как загрузить изображения асинхронно.   -  person Clemens    schedule 10.07.2018