InkCanvas一般保存为图片可以使用RenderTargetBitmap 来截取控件的图像
代码如下
RenderTargetBitmap rtBitmap = new RenderTargetBitmap(96, 96, this.Screen.Width, this.Screen.Height, PixelFormats.Default); rtBitmap.Render(this.inkCanvas); BmpBitmapEncoder enc = new BmpBitmapEncoder(); enc.Frames.Add(BitmapFrame.Create(rtBitmap)); string filePath = "E:\\ink.jpg"; using (Stream s = File.Create(filePath)) { encoder.Save(s); }
但以上写法有个缺陷 那就是无法保存出透明背景的效果
这里提供两个导出透明背景图片思路
InkCanvas导出透明背景图像
- 就是拿到InkCanvas的墨迹路径 然后在新的透明画布上画出来再导出图像
- 合成导出不透明图像后 二次处理将白色部分处理成透明的