相关文章推荐
果断的可乐  ·  C# ...·  1 月前    · 
耍酷的移动电源  ·  C# SocketException: ...·  1 月前    · 
冷冷的牛排  ·  多表级联查询(left ...·  1 年前    · 
逆袭的大象  ·  在Canvas ...·  1 年前    · 

c# wpf convert bitmap to bitmapimage

在 C# WPF 中将 Bitmap 转换为 BitmapImage,可以通过以下步骤实现:

  • 首先,将 Bitmap 转换为 BitmapSource 对象。
  • Bitmap bitmap = new Bitmap("image.bmp");
    IntPtr hBitmap = bitmap.GetHbitmap();
    BitmapSource bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
    
  • 接下来,将 BitmapSource 对象转换为 BitmapImage 对象。
  • BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.BeginInit();
    bitmapImage.StreamSource = new MemoryStream(BitmapSourceToBytes(bitmapSource));
    bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
    bitmapImage.EndInit();
    

    其中,BitmapSourceToBytes 方法用于将 BitmapSource 对象转换为 byte 数组。

    public static byte[] BitmapSourceToBytes(BitmapSource bitmapSource)
        using (MemoryStream stream = new MemoryStream())
            BitmapEncoder encoder = new BmpBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
            encoder.Save(stream);
            return stream.ToArray();
    

    完成上述步骤后,bitmapImage 对象即为转换后的 BitmapImage 对象。

    希望这些步骤可以帮助到您。

  •