WPF 画像表示速度の向上: ビットマップ変換の最適化
迅速なビットマップ更新を必要とする WPF アプリケーションでは、Bitmap から BitmapSource への変換プロセスがパフォーマンスに重大な影響を及ぼし、CPU 使用率が高くなり、画像表示がぎくしゃくする可能性があります。
CreateBitmapSourceFromHBitmap
は一般的なソリューションですが、計算オーバーヘッドがかなり大きくなる可能性があります。 パフォーマンスを大幅に向上させるには、安全でないコードを使用した直接メモリ操作を検討してください。
次のコードは、より高速な変換方法を提供しており、CreateBitmapSourceFromHBitmap
に比べて少なくとも 4 倍の速度向上が実証されています。 PixelFormat
が 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>
この最適化された方法により、ビットマップ変換中の CPU 負荷が大幅に軽減され、WPF アプリケーション内の高頻度更新シナリオでの画像表示がよりスムーズかつ高速になります。
以上が高速画像表示のために WPF でビットマップ変換を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。