在 C# 中创建 SVG

学习如何使用 Aspose.SVG for .NET 以编程方式创建 SVG。

如何在 C# 中创建 SVG

可缩放矢量图形 (SVG) 是一种用于创建二维矢量图形的 XML 语言,SVG 文档是一种文本文件,将图像描述为几何基元:直线、曲线、形状、文本等。如果您开发网站,则创建数据SVG 为图形创建提供了多功能且高效的解决方案。 Aspose.SVG for .NET 库提供了一组用于创建、编辑、转换和对 SVG 文件进行其他操作的类和方法。那么,让我们创建一个新的 SVG 文档!


首先,确保您的项目中安装了 Aspose.SVG for .NET API。安装过程非常简单。您可以使用以下命令通过 NuGet 包管理器控制台安装它:


安装 Aspose.SVG for .NET

Install-Package Aspose.SVG



创建一个空的 SVG 文档

Aspose.SVG for .NET API 提供了 SVGDocument 类,可用于创建 SVG 文档。 SVGDocument 是 SVG 层次结构的根,包含整个内容。以下 C# 代码片段显示了如何使用默认的SVGDocument()构造函数来创建空文档:

  1. 使用 SVGDocument() 构造函数从头开始创建 SVG 文档。
  2. 使用 Save() 方法之一保存 SVG 文件。

创建空 SVG 文档的 C# 代码

using System.IO;
using Aspose.Svg;
...

    // Initialize an empty SVG document
    using (var document = new SVGDocument())
    {
        // Work with the SVG document here...

        // Save the document to a file
        document.Save(Path.Combine(OutputDir, "empty.svg"));
    }



从内存字符串创建 SVG

如果您想动态生成 SVG,从内存字符串生成 SVG 会很有用。从字符串创建 SVG 允许您轻松更新和表示可视化中不断变化的数据集。您可以使用 SVGDocument(content, baseUri) 构造函数从字符串内容创建 SVG:


从字符串创建 SVG 的 C# 代码

using System.IO;
using Aspose.Svg;
...

    var documentContent = "<svg xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"70\" cy=\"70\" r=\"60\" fill=\"#ff0000\" /> <polygon points=\"160,10 350,140 210,350 50,199\" style=\"fill: orange\" /></svg>";

    using (var document = new SVGDocument(documentContent, "."))
    {
        // Work with the document here...

        // Save the document to a file
        document.Save(Path.Combine(OutputDir, "from-string.svg"));
    }





有用的资源

  • 要了解有关 Aspose.SVG for .NET API 的更多信息,请访问我们的 文档
  • 在 C# 中创建 SVG、加载和读取 SVG 文章中,您将了解如何从文件、流或内存字符串创建 SVG;如何从 Web 加载 SVG,并使用资源异步读取 SVG。
  • 编辑 SVG 文件 – C# 示例 文档文章为您提供有关如何使用 Aspose.SVG for .NET API 读取或编辑文档对象模型的基本信息。您将探索如何创建 SVG 元素以及如何使用它们 – 通过插入新节点、删除或编辑现有节点的内容来修改文档。本文考虑了在 SVG 中添加和编辑新元素以及将 SVG 滤镜应用于位图的详细示例。
  • 如果您想了解更多有关 SVG 规则和语法的信息,我们建议您访问我们的指南 SVG 绘图 – 基础教程 。在这里,我们通过简单的示例解释了从头开始创建 SVG 的一般规则和标准步骤。



其他支持的 Aspose.SVG for .NET API 功能

使用 Aspose.SVG C# 库来转换、合并、编辑 SVG 文档、转换颜色代码、矢量化图像等等!