Управление WPF Image
использует собственные подсистемы Windows Imaging и Direct3D для Windows, чтобы выполнить всю свою грязную работу, поэтому, если использовать их с правыми параметрами, это будет так же быстро, как и все, что вы найдете.
Я подозреваю, что проблема заключается в том, что ваши настройки приводят к тому, что Windows Imaging загружает изображение с полным разрешением, а Direct3D масштабирует его. Решение этого - сделать масштабирование при загрузке изображения, установив DecodePixelHeight
и DecodePixelWidth
на BitmapImage
, которые вы используете как ImageSource
.
Другая техника, которую многие графические приложения используют для ускорения работы, - это предварительная загрузка изображений в фоновом режиме. Например, средство просмотра изображений Windows автоматически начинает загрузку следующего изображения сразу же после отображения текущего изображения.
Если вы предварительно загружаете изображения, подумайте об этом в отдельной теме. Также убедитесь, что вы используете BitmapCacheOption.OnLoad
, когда вы создаете BitmapImage
, или на самом деле предварительная загрузка не будет (по умолчанию OnDemand
).
Спасибо, это очень полезно. У меня была проблема с предварительной загрузкой, которую вы упомянули, поэтому BitmapCacheOption.OnLoad должен быть очень полезен. –