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>
段階的な内訳:
MemoryStream
は、画像データの一時ストレージとして機能します。System.Drawing.Bitmap
(bitmap
と呼ばれる) は、MemoryStream
形式を使用して ImageFormat.Png
に保存されます。 PNG は広くサポートされている形式であり、互換性が確保されています。memory.Position = 0;
行はストリームの位置を先頭にリセットし、BitmapImage
による読み取りの準備をします。BitmapImage
オブジェクトが作成されます。bitmapImage.BeginInit();
は初期化プロセスを開始します。MemoryStream
は、StreamSource
の BitmapImage
として割り当てられます。BitmapCacheOption.OnLoad
キャッシュを最適化し、パフォーマンスを向上させます。bitmapImage.EndInit();
は初期化を完了し、bitmapImage
を WPF アプリケーションで使用できるようにします。このプロセスによりスムーズな変換が保証され、WPF 環境内で System.Drawing ビットマップを簡単に表示できるようになります。
以上がSystem.Drawing.Bitmap を WPF BitmapImage に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。