WPF中将画板(或窗口)内容保存为图像

将画板或窗口内容保存为tu图像,主要需要使用两个位图绘制对象:RenderTargetBitmap与BitmapEncoder对象,其中BitmapEncoder为抽象类,从该对象继承的对象包含了:  System.Windows.Media.Imaging.BmpBitmapEncoderSystem.Windows.Media.Imaging.GifBitmapEncoderSystem.Windows.Media.Imaging.JpegBitmapEncoderSystem.Windows.Media.Imaging.PngBitmapEncoderSystem.Windows.Media.Imaging.TiffBitmapEncoderSystem.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对象

猜你喜欢

转载自blog.csdn.net/u012846041/article/details/81503491