ホームページ > バックエンド開発 > C++ > WPF でビットマップから BitmapSource への変換を高速化するにはどうすればよいですか?

WPF でビットマップから BitmapSource への変換を高速化するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-11 10:40:42
オリジナル
1017 人が閲覧しました

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

シームレスな WPF 画像レンダリングのためのビットマップ変換の強化

スムーズな画像表示は、高性能 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート