c# - 在WPF中使用Image控件显示System.Drawing.Bitmap

标签 c# wpf

如何将内存中的 Bitmap 对象分配给 WPF 中的 Image 控件?

最佳答案

根据 http://khason.net/blog/how-to-use-systemdrawingbitmap-hbitmap-in-wpf/

   [DllImport("gdi32")]
   static extern int DeleteObject(IntPtr o);

   public static BitmapSource loadBitmap(System.Drawing.Bitmap source)
   {
       IntPtr ip = source.GetHbitmap();
       BitmapSource bs = null;
       try
       {
           bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, 
              IntPtr.Zero, Int32Rect.Empty, 
              System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
       }
       finally
       {
           DeleteObject(ip);
       }

       return bs;
   }

它获取 System.Drawing.Bitmap(来自 WindowsBased)并将其转换为 BitmapSource,它实际上可以用作 WPF 中 Image 控件的图像源。

image1.Source = YourUtilClass.loadBitmap(SomeBitmap);

关于c# - 在WPF中使用Image控件显示System.Drawing.Bitmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118496/

相关文章:

c# - 在以下情况下正确使用抽象类或接口(interface)

c# - 如何在 WPF 中将窗口设置为 ViewModel 的所有者

c# - RegLoadAppKey 在 32 位操作系统上运行良好,在 64 位操作系统上失败,即使两个进程都是 32 位的

c# - 在 Caliburn.micro 中设置初始窗口大小

WPF 组合框绑定(bind)文本

c# - 使用 AutoFaker 将 RuleFor 设置为 null

c# - Windows Phone 8.1 连接到蓝牙智能心率监测器

c# - 如何获取 Canvas 中 UserControl 的 X、Y 位置?

c# - 在显示到 WPF WebBrowser 控件之前操作 HTML 文档

wpf - 带 ItemsControl 的工具提示不会随 DataContext 更改而更新