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

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

Susan Sarandon
Susan Sarandonオリジナル
2025-01-28 01:11:07805ブラウズ

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

System.Drawing.Bitmap を WPF BitmapImage に変換する

この記事では、System.Drawing (Windows フォーム アプリケーションでよく使用される) の画像を WPF アプリケーションにシームレスに統合する方法について説明します。 重要なのは、System.Drawing.Bitmap オブジェクトを System.Windows.Media.Imaging.BitmapImage に変換することです。

解決策: MemoryStream の使用

最も効率的な方法は、画像データを転送するための仲介者として MemoryStream を使用します。

コード例:

<code class="language-csharp">using (MemoryStream memory = new MemoryStream()) {
    bitmap.Save(memory, ImageFormat.Png); // Save as PNG for broad compatibility
    memory.Position = 0; // Reset stream position
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.BeginInit();
    bitmapImage.StreamSource = memory;
    bitmapImage.CacheOption = BitmapCacheOption.OnLoad; // Optimize caching
    bitmapImage.EndInit();
}</code>

段階的な内訳:

  1. MemoryStream を作成します: MemoryStream は、画像データの一時ストレージとして機能します。
  2. ビットマップの保存: System.Drawing.Bitmap (bitmap と呼ばれる) は、MemoryStream 形式を使用して ImageFormat.Png に保存されます。 PNG は広くサポートされている形式であり、互換性が確保されています。
  3. ストリーム位置のリセット: memory.Position = 0; 行はストリームの位置を先頭にリセットし、BitmapImage による読み取りの準備をします。
  4. BitmapImage の作成: WPF 互換の画像を保持するために新しい BitmapImage オブジェクトが作成されます。
  5. 初期化の開始: bitmapImage.BeginInit(); は初期化プロセスを開始します。
  6. ストリーム ソースの設定: MemoryStream は、StreamSourceBitmapImage として割り当てられます。
  7. キャッシュ オプションの設定: BitmapCacheOption.OnLoad キャッシュを最適化し、パフォーマンスを向上させます。
  8. 初期化の終了: bitmapImage.EndInit(); は初期化を完了し、bitmapImage を WPF アプリケーションで使用できるようにします。

このプロセスによりスムーズな変換が保証され、WPF 環境内で System.Drawing ビットマップを簡単に表示できるようになります。

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

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