Создать SVG на C#
Узнайте, как создать SVG с нуля и как редактировать его содержимое.
Как создать SVG на C#
Масштабируемая векторная графика (SVG) – это язык XML для создания двумерной векторной графики, а документ SVG – это текстовый файл, описывающий изображения как геометрические примитивы: линии, кривые, формы, текст и т. д. Если вы разрабатываете веб-сайты, создаете визуализацию данных или работаете над печатными материалами, SVG предоставляет универсальное и эффективное решение для создания графики. Библиотека Aspose.SVG for .NET предоставляет набор классов и методов для создания, редактирования, преобразования и других манипуляций с файлами SVG. Итак, давайте создадим новый SVG-документ!
Сначала убедитесь, что в вашем проекте установлена библиотека Aspose.SVG for .NET. Процесс установки довольно прост. Вы можете установить её через консоль диспетчера пакетов NuGet, используя следующую команду:
Установите Aspose.SVG для .NET.
Install-Package Aspose.SVG
Создать пустой документ SVG
Aspose.SVG для .NET API предоставляет класс SVGDocument , который можно использовать для создания документа SVG. SVGDocument является корнем иерархии SVG и содержит весь контент. В следующем фрагменте кода C# показано использование конструктора SVGDocument() по умолчанию для создания пустого документа:
- Создайте документ SVG с нуля, используя конструктор SVGDocument() .
- Сохраните файл SVG, используя один из методов Save() .
Код C# для создания пустого документа SVG
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 из строки памяти
Cоздание SVG из строки памяти может быть полезна, если вы хотите генерировать SVG «на лету». Такой способ создания SVG позволяет легко обновлять и представлять изменяющиеся наборы данных в ваших визуализациях. Вы можете создать SVG из строкового содержимого, используя конструктор SVGDocument(string, string) :
Код C# для создания SVG из строки
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"));
}
Как добавить элементы в файл SVG
Aspose.SVG для .NET позволяет редактировать файлы SVG и изменять их содержимое. Объектная модель документа (DOM) API обеспечивает полный контроль над узлами SVG и их атрибутами и полностью соответствует официальным спецификациям SVG.
После создания объекта документа его можно заполнить элементами SVG. Вы можете настроить документ, добавив больше элементов, таких как фигуры SVG, тексты, фильтры и т. д., используя соответствующие классы, предоставляемые пространством имен Aspose.Svg . Например, вот как можно добавить декорированный круг и текст:
Код C# для редактирования SVG
using System.IO;
using Aspose.Html;
...
// Set SVG Namespace Url
string SvgNamespace = "http://www.w3.org/2000/svg";
using (var document = new SVGDocument())
{
var svgElement = document.RootElement;
// Create a text element and set its attributes
var textElement = (SVGTextElement)document.CreateElementNS(SvgNamespace, "text");
textElement.Style.FontSize = "2.0em";
textElement.SetAttribute("x", "270px");
textElement.SetAttribute("fill", "darkred");
textElement.SetAttribute("y", "140px");
textElement.TextContent = "I can add elements to SVG!";
// Create a circle element and set its attributes
var circleElement = (SVGCircleElement)document.CreateElementNS(SvgNamespace, "circle");
circleElement.Cx.BaseVal.Value = 130;
circleElement.Cy.BaseVal.Value = 130;
circleElement.R.BaseVal.Value = 60;
circleElement.SetAttribute("stroke", "salmon");
circleElement.SetAttribute("stroke-width", "70");
circleElement.SetAttribute("fill", "none");
circleElement.SetAttribute("stroke-dasharray", "2,14");
// Add the text and circle elements into svgElement
svgElement.AppendChild(textElement);
svgElement.AppendChild(circleElement);
// Save the document
document.Save(Path.Combine(OutputDir, "svg-from-scratch.svg"));
}
Давайте рассмотрим простые шаги по редактированию SVG-документа, иллюстрирующие приведенный выше код С#. Элементы SVG <circle>
и <text>
добавляются в созданный документ SVG:
- Чтобы создать документ SVG программным способом с нуля, используйте конструктор SVGDocument() без параметров.
- Свойство
RootElement
класса SVGDocument указывает на корневой элемент документа<svg>
. - Создайте элементы
<text>
и<circle>
с атрибутами и добавьте их к элементу<svg>
:- Вы можете использовать метод CreateElementNS() для создания экземпляров классов SVGTextElement и SVGCircleElement.
- Вызовите метод SetAttribute() , чтобы установить атрибуты, определяющие положение, размер, заливку и т. д.
- Используйте метод
AppendChild()
для добавления элементов в
<svg>
.
- Сохраните отредактированный SVG-файл методом Save() .
Результирующий файл, который мы создали выше (svg-from-scratch.svg), выглядит следующим образом:
Полезные ресурсы
- Чтобы узнать больше об Aspose.SVG для .NET API, посетите нашу документацию .
- Из статьи Создание SVG, загрузка и чтение SVG на C# вы узнаете, как создать SVG из файла, потока или строки памяти; как загружать SVG из Интернета и читать SVG с помощью Resources Async.
- В статье Редактирование файла SVG - Примеры C# представлена основная информация о том, как читать или редактировать объектную модель документа с помощью Aspose.SVG для .NET API. Вы узнаете, как создавать элементы SVG и как с ними работать – изменять документ, вставляя новые узлы, удаляя или редактируя содержимое существующих узлов. В статье рассмотрены подробные примеры добавления и редактирования новых элементов в SVG и применения SVG-фильтров к растровым изображениям.
- Мы рекомендуем вам посетить наше руководство Рисование SVG – Основы обучения , если вы хотите узнать больше о правилах и синтаксисе SVG. Здесь мы объясняем общие правила и стандартные шаги создания SVG с нуля на простых примерах.
Другие поддерживаемые функции Aspose.SVG для .NET API
Используйте библиотеку Aspose.SVG C# для преобразования, объединения, редактирования документов SVG, преобразования цветовых кодов, векторизации изображений и многого другого!