Я работаю над приложением WPF с несколькими холстами и множеством кнопок. Пользователь может загружать изображения, чтобы изменить фон кнопки.
Это код, в котором я загружаю изображение в объект BitmapImage.
bmp = new BitmapImage();
bmp.BeginInit();
bmp.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.UriSource = new Uri(relativeUri, UriKind.Relative);
bmp.EndInit();
а на EndInit () очень сильно увеличивается память приложения.
Одна вещь, которая заставляет думать лучше (но на самом деле не решает проблему), - это добавление
bmp.DecodePixelWidth = 1024;
1024 - мой максимальный размер холста. Но я должен делать это только с изображениями шириной больше 1024 - так как я могу получить ширину до EndInit ()?