在 C# WPF 中将 Bitmap 转换为 BitmapImage,可以通过以下步骤实现:
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 对象。
希望这些步骤可以帮助到您。