Augmentation de la vitesse d'affichage des images WPF : optimisation des conversions bitmap
Dans les applications WPF exigeant des mises à jour rapides des bitmaps, le processus de conversion Bitmap vers BitmapSource peut avoir un impact important sur les performances, entraînant une utilisation élevée du processeur et un affichage saccadé des images.
Bien que CreateBitmapSourceFromHBitmap
soit une solution courante, sa surcharge de calcul peut être substantielle. Pour des performances considérablement améliorées, envisagez une manipulation directe de la mémoire à l'aide de code non sécurisé.
Le code suivant offre une méthode de conversion plus rapide, démontrant empiriquement une vitesse au moins quadruplée par rapport à CreateBitmapSourceFromHBitmap
. N'oubliez pas de vous assurer que le PixelFormat
correspond au BitmapSource
:
<code class="language-csharp">public static BitmapSource Convert(System.Drawing.Bitmap bitmap) { var bitmapData = bitmap.LockBits( new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, bitmap.PixelFormat); var bitmapSource = BitmapSource.Create( bitmapData.Width, bitmapData.Height, bitmap.HorizontalResolution, bitmap.VerticalResolution, PixelFormats.Bgr24, null, bitmapData.Scan0, bitmapData.Stride * bitmapData.Height, bitmapData.Stride); bitmap.UnlockBits(bitmapData); return bitmapSource; }</code>
Cette méthode optimisée réduit considérablement la charge du processeur lors de la conversion bitmap, ce qui entraîne un affichage d'image plus fluide et plus rapide dans les scénarios de mise à jour à haute fréquence au sein de votre application WPF.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!