Le contrôle Image
de WPF utilise les sous-systèmes «Windows Imaging» et Direct3D natifs de Windows pour faire son sale boulot, donc s'il est utilisé avec les bons parémètres, il sera à peu près aussi rapide que tout ce que vous trouverez.
Je suppose que le problème est que vos paramètres entraînent Windows Imaging charger l'image en pleine résolution, puis avoir Direct3D l'échelle. La solution consiste à effectuer la mise à l'échelle lorsque vous chargez l'image en définissant DecodePixelHeight
et DecodePixelWidth
sur le BitmapImage
que vous utilisez comme ImageSource
.
Une autre technique que de nombreuses applications graphiques utilisent pour accélérer les choses est de précharger les images en arrière-plan. Par exemple, la visionneuse d'images Windows démarre automatiquement le chargement de l'image suivante dès que l'image actuelle est affichée.
Si vous préchargez des images, envisagez de le faire dans un fil séparé. Assurez-vous également que vous utilisez BitmapCacheOption.OnLoad
lorsque vous créez le BitmapImage
ou que le préchargement ne se produit pas réellement (la valeur par défaut est OnDemand
).
Merci, c'est très utile. J'ai eu le problème de préchargement que vous avez mentionné, donc BitmapCacheOption.OnLoad devrait être très utile. –