C#和.NET中的SVG框架以及SVG-GDI+桥接






4.70/5 (26投票s)
2003年3月9日
2分钟阅读

439605

19733
Svg.Net 是一个用于创建 SVG 图像的 C# 框架。在其之上实现了一个 GDI-SVG 桥接。
SvgNet & SvgGdi
SvgNet 是一个 C# 库,旨在简化 SVG 文档的处理,特别是创建。项目主页是 这里。主页上的源代码可能比 The Code Project 上的副本更新。
它的作用
SvgNet 由以下部分组成用于表示 SVG 元素和 SVG 类型的类
SvgNet 包含一组类,用于表示 SVG 元素(例如椭圆或 tspan)和 SVG 类型(例如变换列表、样式或路径描述)。SVG 类型提供了运算符,以便轻松构建和修改 SVG 文档。例如,要更改样式的某些属性,您可以执行以下操作myEllipse.Style = new Style("fill:red"); myEllipse.Style.Set("opacity", 0.5); myEllipse.Style += "stroke:black";
用于读取、写入和复制 SVG 场景的类
要从您创建的 SVG 元素树中获取 SVG 字符串,就像这样简单SvgElement myRootElement = SvgFactory.ReadSvgString(s); s = myRootElement.WriteSvgString();XML 输出可以使用实体来减小文件大小并提高文档的可读性。
SvgFactory
类还包含用于深度复制任何 SVG 节点及其后代的方法。所有 SVG 类型和元素都是可克隆的。
Svg-Gdi 桥接
SvgGdi 桥接是一组类,它们使用 SvgNet 在 SVG 和 GDI+ 之间进行转换。这意味着任何使用 GDI+ 绘制图形的代码都可以轻松地输出 SVG,只需插入SvgGraphics
对象即可。该对象与常规 .NET Graphics 对象完全相同,但会创建一个 SVG 树。甚至像填充图案和线条锚点这样的东西也已实现。GDI+ 令人恼火的旧式“当前变换”系统通过创建嵌套的 SVG group 元素来实现,从而在某些方面产生比相应的 GDI+ 元文件更清晰的 SVG 输出。SvgGdi 是 SvgNet 的主要用途,尽管未来可能会在 SvgNet 上构建其他东西(例如基本形状的集合,或者绘图工具)。
文档
SvgNet 类库在本帮助包中进行了文档说明。此外,SvgNet 捆绑了两个示例应用程序- SvgDocTest -- 测试应用程序,用于读取和写入文档以及构建 SVG 文档。此应用程序既是一个示例也是一个测试系统。
- SvgGdiTest -- 使用 SVG 和 GDI+ 绘制各种场景的应用程序。它既是 SvgGdi 用法的示例,也是 SvgGdi 模拟 GDI+ 准确性的测试。
SvgNet 项目
SvgNet 是一个采用 BSD 类似许可协议的开源项目(许可条款在每个 SvgNet 源代码文件中重现)。SvgNet 的版权归 RiskCare Ltd. 2003 年所有。SvgNet 项目主页是 这里。