技术方向

Svg操作库

技术方向 图像处理
Nuget Svg
访问数 1713
来源 GitHub
开源协议 MS-RL
星星数 784
发布时间 2021-12-20 20:35:24

C#.Net下的GitHub开源库SVG是一个SVG文件的解析操作库,它可以自定义变量操作SVG指定的内容,可以浏览解析SVG文件,生成图片等


1、自定义SVG变量,动态更新内容后生成图片

static void Main(string[] args)
{
    string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"../../../sample.svg");

    var sampleDoc = SvgDocument.Open<SvgDocument>(filePath,  new Dictionary<string, string> 
    {
        {"entity1", "fill:black" },
        {"entity2", "fill:yellow" }
    });

    sampleDoc.Draw().Save(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"./sample.png"));
}

从代码中可以看到定义了两个变量entity1和entity2

<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="800">
  <g style="fill-opacity:0.7;">
    <circle cx="6.5cm" cy="2cm" r="100" style="&entity1;" transform="translate(0,50)" />
    <circle cx="6.5cm" cy="2cm" r="100" style="&entity2;" transform="translate(70,150)" />
    <circle cx="6.5cm" cy="2cm" r="100" style="fill:green;" transform="translate(-70,150)"/>
  </g>
</svg>

SVG的文件中插入了“&entity1”和“&entity2”这两个变量,最后Save保存生成的时候将会吧entity1和entity2的内容填充进去,最后生成sample.png图片

C#.Net开源系列之Svg操作库


2、SVG文件浏览

文件浏览包含图形浏览和xml结构查看

代码非常简单,先打开svg文件

var svgDoc = SvgDocument.Open(openSvgFile.FileName);
svgImage.Image = svgDoc.Draw();

就可以展现svg图形了(svgImage是winform下的picturebox控件)

C#.Net开源系列之Svg操作库

这个SVG的库操作非常简单傻瓜化。解析SVG速度也还可以,如上这副图元素还是挺多了,SVG源文件在78K大小,解析呈现出来大概1秒以内。

频道专栏
推荐源码