将画板或窗口内容保存为tu图像,主要需要使用两个位图绘制对象:RenderTargetBitmap与BitmapEncoder对象,其中BitmapEncoder为抽象类,从该对象继承的对象包含了: System.Windows.Media.Imaging.BmpBitmapEncoder、System.Windows.Media.Imaging.GifBitmapEncoder、System.Windows.Media.Imaging.JpegBitmapEncoder、System.Windows.Media.Imaging.PngBitmapEncoder、System.Windows.Media.Imaging.TiffBitmapEncoder、System.Windows.Media.Imaging.WmpBitmapEncoder等几类,分别代表了不同的图像存储格式。
将画板或窗口内容保存为图片,主要涉及到这样几步:
1、将从Visual继承的对象内容转换到位图中,
2、将位图内容存储到图像帧;
代码如下示意:
RenderTargetBitmap rtp = new RenderTargetBitmap((int)canvas1.ActualWidth, (int)canvas1.ActualHeight, 96, 96, PixelFormats.Pbgra32);
rtp.Render(canvas1);
JpegBitmapEncoder jpeg = new JpegBitmapEncoder();
jpeg.Frames.Add(BitmapFrame.Create(rtp));
FileStream fs = new FileStream(@"d:\temp\test.jpeg", FileMode.CreateNew);
jpeg.Save(fs);
fs.Close();
fs.Dispose();
在实际编程中可根据图像文件输出格式选择合适的BitmapEncoder对象