ホームページ >バックエンド開発 >C++ >System.Drawing.Bitmap を WPF BitmapImage に効率的に変換するにはどうすればよいですか?

System.Drawing.Bitmap を WPF BitmapImage に効率的に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-28 01:21:12432ブラウズ

How Do I Efficiently Convert a System.Drawing.Bitmap to a WPF BitmapImage?

System.Drawing.Bitmap から WPF BitmapImage への効率的な変換

WPF アプリケーションは通常、System.Windows.Media.Imaging.BitmapImage クラスを使用して画像を処理します。ただし、既存の System.Drawing.Bitmap オブジェクトを扱う場合、それらを BitmapImage に変換することは便利な手順です。この変換により、これらの画像を WPF アプリケーションで表示および操作できるようになります。

System.Drawing.BitmapBitmapImage に変換する最も効率的な方法は、MemoryStream を使用することです。詳細な手順は次のとおりです:

<code class="language-csharp">using(MemoryStream memory = new MemoryStream())
{
    bitmap.Save(memory, ImageFormat.Png);
    memory.Position = 0;
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.BeginInit();
    bitmapImage.StreamSource = memory;
    bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
    bitmapImage.EndInit();
}</code>
  1. MemoryStream オブジェクトを作成し、System.Drawing.BitmapSave() メソッドを使用して、ビットマップを目的の画像形式 (ImageFormat.Png など) でメモリ ストリームに保存します。
  2. メモリ ストリームの Position を先頭 (0) に戻して読み取ります。
  3. BitmapImage オブジェクトを作成します。
  4. は、BeginInit() メソッドと EndInit() メソッド BitmapImage を使用して初期化され、完了されます。
  5. ストリームから画像をロードするには、BitmapImageStreamSource 属性をメモリ ストリームに設定します。
  6. その後のアクセスを高速化するために画像がキャッシュされるように、CacheOptionBitmapCacheOption.OnLoad に設定します。
  7. EndInit() を使用して、BitmapImage の初期化を終了します。

この変換が完了すると、BitmapImage オブジェクトは、Image コントロールに表示したり、画像操作を実行したりするなど、他の WPF 画像リソースと同様に使用できます。

以上がSystem.Drawing.Bitmap を WPF BitmapImage に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。