🗿

[WPF/C#] System.Drawing.BitmapをBitmapSourceに変換する

2021/08/27に公開

もくじ

https://qiita.com/tera1707/items/4fda73d86eded283ec4f

やりたいこと

WinFormから?使っているSystem.Drawing.Bitmapを、WPFで使っているSystem.Windows.Media.Imaging.BitmapSourceに変換したい。

やり方

System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap()メソッドを使う。

サンプルコード

// 画像から読み込んだ System.Drawing.Bitmap から、
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(@"C:\・・・画像のパス・・・");

// Bitmapのハンドルを取得し、
var hBitmap = bitmap.GetHbitmap();

// CreateBitmapSourceFromHBitmap()で System.Windows.Media.Imaging.BitmapSource に変換する
System.Windows.Media.Imaging.BitmapSource bitmapsource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                        hBitmap,
                        IntPtr.Zero,
                        Int32Rect.Empty,
                        BitmapSizeOptions.FromEmptyOptions());

MyImage.Source = bitmapsource;

参考

https://www.it-mure.jp.net/ja/c%23/bitmapsourceとbitmapの間で変換する良い方法はありますか?/968511981/

https://mohmongar.net/?p=1459

Discussion