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