Csharp/C#教程:Wpf InkCanvas将stokes保存为svg分享


Wpf InkCanvas将stokes保存为svg

是否可以将InkCanvas笔划集保存到svg图像? 我唯一能找到的是我可以将笔画保存为带有嵌入式ISF(墨迹序列化格式)的GIF,或者可以将它们渲染为位图。 我想以矢量格式保存笔画,可以与其他平台(如web)互操作。

我想到了。

这是步骤

  1. 迭代StrokeCollection
  2. 通过调用GetGeometry函数然后调用GetOutlinedPathGeometry获取每个StrokeGetOutlinedPathGeometry
  3. Geometry获取Figures 。 我是通过将PathGeometry保存到XAML然后通过XElement.Parse解析Figures属性来完成的。
  4. 然后我可以创建一个svg文档并添加每个路径(参见下面的代码)。

我正在使用SVG渲染库来创建SVG文档。

上述就是C#学习教程:Wpf InkCanvas将stokes保存为svg分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 var svg = new SvgDocument(); var colorServer = new SvgColourServer(System.Drawing.Color.Black); var group = new SvgGroup {Fill = colorServer, Stroke = colorServer}; svg.Children.Add(group); foreach (var stroke in InkCanvas.Strokes) { var geometry = stroke.GetGeometry(stroke.DrawingAttributes).GetOutlinedPath‌​Geometry(); var s = XamlWriter.Save(geometry); if (s.IsNotNullOrEmpty()) { var element = XElement.Parse(s); var data = element.Attribute("Figures")?.Value; if (data.IsNotNullOrEmpty()) { group.Children.Add(new SvgPath { PathData = SvgPathBuilder.Parse(data), Fill = colorServer, Stroke = colorServer }); } } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/957436.html

(0)
上一篇 2021年11月21日
下一篇 2021年11月21日

精彩推荐