WPF将控件导出为图片

2016-11-09 22:40:43来源:CSDN作者:Libby1984人点击

第七城市

WPF将控件导出为图片,主要是使用RenderTargetBitmap 类。

下面是一段示例代码:

RenderTargetBitmap targetBitmap = new RenderTargetBitmap((int)this.exportGrid.ActualWidth, (int)this.exportGrid.ActualHeight, 96d, 96d, PixelFormats.Default);targetBitmap.Render(this.exportGrid);PngBitmapEncoder saveEncoder = new PngBitmapEncoder();saveEncoder.Frames.Add(BitmapFrame.Create(targetBitmap));System.IO.FileStream fs = System.IO.File.Open(fileName, System.IO.FileMode.OpenOrCreate);saveEncoder.Save(fs);

首先是构造一个RenderTargetBitmap 类的实例,RenderTargetBitmap 类的作用是Visual 对象转换为位图。Visual 类为WPF中的呈现提供支持,其中包括命中测试、坐标转换和边界框计算。下图是WPF中的可视对象层次结构:

可以看出Visual 类是FrameworkElement 的基类。
然后将所要导出为图片的控件作为Render 函数的参数,表示要将改控件转换为图片。下面要解决的就是如何保存为图片文件了。

根据所要保存的图片的格式,可以使用不同的编码器。如BmpBitmapEncoderBmpBitmapEncoderJpegBitmapEncoder等,它们都是BitmapEncoder 类的子类。如下图是它们的继承层次机构图:

 

在上面的例子中使用的是PngBitmapEncoder 类,将控件转换好是位图作为图片中的一帧加人。BitmapFrame类表示的是被编码器所接受的图像数据。之后可以调用编码器的Save 函数,保存为图片。


第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台