C#学习教程:InteropBitmap到BitmapImage分享


InteropBitmap到BitmapImage

我正在尝试将Bitmap (SystemIcons.Question)转换为BitmapImage以便我可以在WPF图像控件中使用它。

我有以下方法将其转换为BitmapSource ,但它返回一个InteropBitmapImage ,现在的问题是如何将其转换为BitmapImage 。 直接演员似乎不起作用。

有谁知道怎么做?

码:

  public BitmapSource ConvertToBitmapSource() { int width = SystemIcons.Question.Width; int height = SystemIcons.Question.Height; object a = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(SystemIcons.Question.ToBitmap().GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(width, height)); return (BitmapSource)a; } 

返回BitmapImage的属性:(绑定到我的图像控件)

 public BitmapImage QuestionIcon { get { return (BitmapImage)ConvertToBitmapSource(); } } 

InteropBitmapImageinheritance自ImageSource ,因此您可以直接在Image控件中使用它。 你不需要它成为BitmapImage

你应该可以使用:

上述就是C#学习教程:InteropBitmap到BitmapImage分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

  public BitmapImage QuestionIcon { get { using (MemoryStream ms = new MemoryStream()) { System.Drawing.Bitmap dImg = SystemIcons.ToBitmap(); dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); System.Windows.Media.Imaging.BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage(); bImg.BeginInit(); bImg.StreamSource = new MemoryStream(ms.ToArray()); bImg.EndInit(); return bImg; } } } 

 public System.Windows.Media.Imaging.BitmapImage QuestionIcon { get { using (MemoryStream ms = new MemoryStream()) { System.Drawing.Bitmap dImg = SystemIcons.ToBitmap(); dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); ms.Position = 0; var bImg = new System.Windows.Media.Imaging.BitmapImage(); bImg.BeginInit(); bImg.StreamSource = ms; bImg.EndInit(); return bImg; } } } 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/959812.html

发表评论

邮箱地址不会被公开。 必填项已用*标注