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

简介: 一个支持.Net Framework 与 .Net Core版本的SVG图形操作库。这个项目集成了SVG各项API,让开发人员可以在.Net很轻松的实现SVG图形的操作,通过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

项目结构

图片

安装方法

Windows环境

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

Install-Package Svg

dotnet命令客户端方式:

dotnet add package Svg

Linux环境

sudo add-apt-repository ppa:quamotion/ppa
sudo apt-get update
sudo 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>

最终效果:

图片

项目地址: https://github.com/svg-net/SVG

- End -

专注分享编程知识、热门有用有趣的开源项目

相关文章
|
6月前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
196 1
|
8天前
|
开发框架 C# iOS开发
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform
|
8天前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
3月前
|
C# 开发者 Windows
在VB.NET项目中使用C#编写的代码
在VB.NET项目中使用C#编写的代码
57 0
|
8天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
1月前
|
开发框架 前端开发 API
C#/.NET/.NET Core优秀项目和框架2024年9月简报
C#/.NET/.NET Core优秀项目和框架2024年9月简报
|
6月前
|
IDE C# 开发工具
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
196 6
|
1月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
|
1月前
|
边缘计算 开发框架 人工智能
C#/.NET/.NET Core优秀项目和框架2024年8月简报
C#/.NET/.NET Core优秀项目和框架2024年8月简报
|
3月前
|
C# Windows
C# 创建 Windows Service 项目
C# 创建 Windows Service 项目
36 1