WPF怎么讲将Image.Source转化为 System.Drawing.Bitmap
时间: 2024-09-20 19:03:27 浏览: 38
在WPF中,想要将`Image.Source`转换成`System.Drawing.Bitmap`,你需要使用`Imaging`命名空间下的`ConvertFromStream`方法,配合`ImageSource`的实际内容(可能是网络图片、本地文件等)。以下是一个简单的示例:
```csharp
using System;
using System.Drawing;
using System.Windows.Media.Imaging;
public BitmapSource ImageToBitmap(ImageSource imageSource)
{
if (imageSource == null) return null;
// 将ImageSource转换为MemoryStream
var memoryStream = new MemoryStream();
imageSource.Save(memoryStream, System.IO.StreamWriteMode.WriteThrough);
// 使用 Imaging 转换内存流为Bitmap
using (var ms = new MemoryStream(memoryStream.ToArray()))
{
return BitmapFrame.Create(ms as Stream).DecodePixelData(BitmapPixelFormat.Bgra32, BitmapAlphaMode.Ignore);
}
}
// 示例用法
var wpfImage = someWpfImageView.Image; // 假设这是一个Image控件的Source属性
Bitmap bitmap = ImageToBitmap(wpfImage);
```
请注意,这只是一个通用的例子,实际应用可能需要处理异常和源格式兼容性问题。此外,如果`Image.Source`是网络资源,你还需要在操作前加载到内存中。
阅读全文