WPF如何画图并将图片存储起来
时间: 2024-11-15 13:24:59 浏览: 8
在WPF (Windows Presentation Foundation) 中,你可以使用`System.Windows.Media`命名空间下的类来进行图形绘制,并将它们保存到文件。以下是一个简单的步骤:
1. **创建画布**:
首先,在XAML中创建一个`Canvas`元素作为绘图区域,如 `<Canvas>`。
2. **添加形状、图像或文本**:
使用`DrawingVisual`, `Path`, `Image`或`TextBlock`等控件,例如:
```xml
<DrawingGroup>
<Ellipse Width="50" Height="50" Fill="Blue"/>
<Image Source="path_to_your_image.jpg"/>
</DrawingGroup>
```
3. **绘制自定义内容**:
如果你想绘制自定义图形,可以创建一个`DrawingContext`并使用其方法,比如`DrawLine()`或`DrawRectangle()`。
4. **绘制完毕后保存**:
- 获取`DrawingVisual`的`RenderTargetBitmap`,它包含了你的所有绘制操作。
- 使用`RenderTargetBitmap.SaveAsync()`方法将图像保存到文件系统,传入一个`SaveOptions`枚举指定保存格式,如 `.png` 或 `.jpg`。
```csharp
using RenderTargetBitmap = System.Windows_media.Imaging.RenderTargetBitmap;
using DrawingVisual = System.Windows.Media.DrawingVisual;
using WriteableBitmap = System.Windows.Media.Imaging.WriteableBitmap;
// ...
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext context = drawingVisual.RenderOpen();
// ...在这里绘制...
context.Close();
RenderTargetBitmap bitmap = new RenderTargetBitmap(
canvas.ActualWidth, canvas.ActualHeight,
96, 96, PixelFormats.Pbgra32);
bitmap.Render(drawingVisual);
string filePath = "output.png";
WriteableBitmap wb = new WriteableBitmap(bitmap);
wb.SaveJpeg(filePath, wb.PixelWidth, wb.PixelHeight, 96, JpegQuality.Max);
```
阅读全文