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

Comment puis-je accélérer la conversion Bitmap en BitmapSource dans WPF ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-11 10:40:421037parcourir

How Can I Speed Up Bitmap to BitmapSource Conversion in WPF?

Amélioration de la conversion Bitmap pour un rendu d'image WPF transparent

Un affichage fluide des images est crucial pour les applications WPF hautes performances. Un goulot d'étranglement courant en termes de performances résulte de la conversion d'objets Bitmap en BitmapSource. Bien que CreateBitmapSourceFromHBitmap propose une solution simple, elle est souvent trop lente pour des performances optimales.

Une solution supérieure : manipulation directe des pixels

Pour une conversion beaucoup plus rapide sans sacrifier la qualité de l'image, envisagez le mappage direct des pixels. Cette technique contourne le traitement interne de l'image pour des gains de vitesse remarquables.

<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>

Ce code copie directement les données de pixels, en utilisant un code dangereux et une gestion efficace de la mémoire pour une conversion extrêmement rapide. Cela minimise la charge du processeur, ce qui entraîne une amélioration notable des performances de vos applications WPF. Mettez en œuvre cette méthode optimisée dès aujourd'hui pour profiter des avantages du rendu d'image accéléré.

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