推荐一个C#操作SVG图形矢量图的开源项目

一说到SVG,很多人第一反应这是前端的领域,是可以Html、JavaScript操作的。SVG文件在浏览器是可以直接运行的,但如果我们在后台需要保存图片,就需要通过SVG定义的XML文件转换为图片格式了。
所以,今天就给大家推荐一个SVG图形操作库,通过它便能轻松实现在.NET中生成和操作SVG图形文件以及字节流。
 
项目简介
这是一个支持.Net Framework  与 .Net Core版本的SVG图形操作库。这个项目集成了SVG各项API,让开发人员可以在.Net很轻松的实现SVG图形的操作,通过SVG文件转换为图片文件。
目前在主要有2个版本:Version 2.4/3.0。版本2.4是.NET Framework 特定版本,3.0版本才支持 .NET Core,同时该版本Linux 和 Mac也都是兼容的。.
 
技术架构
1、平台:基于Net5.0开发
2、开发工具:Visual Studio 2017
 
项目结构
推荐一个C#操作SVG图形矢量图的开源项目
安装方法
Windows环境

通过 安装,命令窗口方式:

Install-Package Svg
dotnet命令客户端方式:
dotnet add package Svg

Linux环境

sudo add-apt-repository ppa:quamotion/ppasudo apt-get updatesudo apt-get install -y libgdiplus

使用例子

画三个圈重叠例子

代码:

class Program{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:red" }, {"entity2", "fill:yellow" } });
sampleDoc.Draw().Save(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"../../../sample.png")); }}

Svg代码:

<?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>
最终效果:
推荐一个C#操作SVG图形矢量图的开源项目
项目地址:https://github.com/svg-net/SVG