Maison > développement back-end > C++ > Comment puis-je accélérer la conversion Bitmap en BitmapSource dans WPF pour un affichage efficace des images ?

Comment puis-je accélérer la conversion Bitmap en BitmapSource dans WPF pour un affichage efficace des images ?

Linda Hamilton
Libérer: 2025-01-11 11:03:43
original
730 Les gens l'ont consulté

How Can I Speed Up Bitmap to BitmapSource Conversion in WPF for Efficient Image Display?

Optimisation de la conversion Bitmap en BitmapSource dans WPF pour un affichage fluide des images

Problème :

Les applications WPF affichant des images à 30 Hz à l'aide de CreateBitmapSourceFromHBitmap connaissent souvent une utilisation élevée du processeur (environ 80 %), ce qui a un impact sur les performances. Cela est dû à la lenteur inhérente du processus de conversion.

Cause fondamentale :

La méthode CreateBitmapSourceFromHBitmap est inefficace pour les mises à jour d'images à haute fréquence.

Solution améliorée :

Une approche nettement plus rapide implique un accès direct à la mémoire et une spécification explicite de PixelFormat :

<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>
Copier après la connexion

Cette méthode optimisée accède directement aux données de pixels du bitmap, en spécifiant le format PixelFormats.Bgr24, contournant ainsi le goulot d'étranglement des performances de CreateBitmapSourceFromHBitmap et entraînant une réduction substantielle de l'utilisation du processeur, garantissant un affichage plus fluide de l'image à la fréquence d'images souhaitée.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal