Maison >développement back-end >C++ >Comment puis-je optimiser la conversion Bitmap dans WPF pour l'affichage d'images à grande vitesse ?

Comment puis-je optimiser la conversion Bitmap dans WPF pour l'affichage d'images à grande vitesse ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-11 11:05:41156parcourir

How Can I Optimize Bitmap Conversion in WPF for High-Speed Image Display?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn