スムーズな画像表示は、高性能 WPF アプリケーションにとって非常に重要です。 一般的なパフォーマンスのボトルネックは、Bitmap
オブジェクトを BitmapSource
に変換するときに発生します。 CreateBitmapSourceFromHBitmap
はシンプルなソリューションを提供しますが、最適なパフォーマンスを得るには遅すぎることがよくあります。
画質を犠牲にすることなく変換を大幅に高速化するには、直接ピクセル マッピングを検討してください。この技術は内部画像処理をバイパスして速度を大幅に向上させます。
<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 でビットマップから BitmapSource への変換を高速化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。