WPF编程,将控件所呈现的内容保存成图像的一种方法。
原文:WPF编程,将控件所呈现的内容保存成图像的一种方法。
版权声明:我不生产代码,我只是代码的搬运工。 https://blog.csdn.net/qq_43307934/article/details/87278138
实现只对控件进行截图,可以利用RenderTargetBitmap类获取Visual对象的视觉效果,从而实现对控件截图效果。
参考地址:https://www.cnblogs.com/TianFang/archive/2012/10/07/2714140.html
例子:这里将控件的显示内容,保存为PNG的图片到本地。
1、代码
//定义一个文件类型的枚举public enum ImageFormat{JPG, BMP, PNG, GIF, TIF}//转为图片并保存public void GenerateImage(BitmapSource bitmap, ImageFormat format, Stream destStream){BitmapEncoder encoder = null;switch (format){case ImageFormat.JPG:encoder = new JpegBitmapEncoder();break;case ImageFormat.PNG:encoder = new PngBitmapEncoder();break;case ImageFormat.BMP:encoder = new BmpBitmapEncoder();break;case ImageFormat.GIF:encoder = new GifBitmapEncoder();break;case ImageFormat.TIF:encoder = new TiffBitmapEncoder();break;default:throw new InvalidOperationException();}encoder.Frames.Add(BitmapFrame.Create(bitmap));encoder.Save(destStream);}
2、调用
其中此函数有五个参数:
分别是图片的宽、图片的高、水平分辨率、垂直分辨率、位图的格式。
private void Button_Click(object sender, RoutedEventArgs e){RenderTargetBitmap rtb = new RenderTargetBitmap((int)this.Width, (int)this.Height, 96, 96, PixelFormats.Pbgra32);rtb.Render(allview);using (Stream fs = File.Create(@"D:\test.png")){GenerateImage(rtb, ImageFormat.PNG, fs);}}
posted on 2019-04-18 12:08 NET未来之路 阅读(...) 评论(...) 编辑 收藏