Насыщенность текста в SVG C#

Насыщенность изображения описывается как интенсивность цветов. Иногда вам может понадобиться добавить текст в изображение SVG и насытить его. В соответствии с такими сценариями в этой статье рассказывается, как программно выполнить насыщение текста в изображениях SVG на C#.

C# API для насыщения текста в изображении SVG — установка

Aspose.SVG для .NET API позволяет создавать изображения SVG или управлять ими. Вы можете применять различные фильтры и работать со многими свойствами изображений масштабируемой векторной графики, а также конвертировать изображения SVG в поддерживаемые форматы. Просто загрузите файл DLL или выполните следующую команду установки NuGet:

PM> Install-Package Aspose.SVG

Как насытить текст в изображении SVG в C#

Вы можете вставить текст в изображение SVG и насытить его, выполнив следующие действия:

  1. Создайте объект класса SVGDocument.
  2. Создайте элемент defs и filter.
  3. Создайте элемент feColorMatrix и добавьте текст в SVG.
  4. Сохраните выходное изображение SVG.

В следующем разделе более подробно рассматривается, как выполнить эти шаги во фрагменте кода C#:

Насыщать текст в изображении SVG программно на С#

Вы можете насытить текст в изображении SVG, выполнив следующие действия:

  1. Создайте объект класса SVGDocument.
  2. Получите доступ к корневому элементу SVG и задайте URL-адрес пространства имен.
  3. Создайте объект класса SVGDefsElement и добавьте его к элементу SVG.
  4. Инициализируйте экземпляр класса SVGFEColorMatrixElement и установите разные значения.
  5. Определите объект класса SVGTextElement и добавьте текст в SVG.
  6. Наконец, экспортируйте выходное изображение SVG с помощью метода Save().

Фрагмент кода ниже демонстрирует, как создать эффект насыщения с помощью цветовой матрицы в C#:

// Создайте экземпляр класса SVGDocument
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument();

// Установить URL-адрес пространства имен SVG
string SvgNamespace = "http://www.w3.org/2000/svg";
// Получить корневой элемент svg документа
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;


// Создайте элемент defs и добавьте его в svgElement.
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Создайте фильтрующий элемент и добавьте его в defsElement.
var filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
filterElement.Id = "shadow";
filterElement.SetAttribute("x", "-20px");
filterElement.SetAttribute("y", "-20px");
filterElement.SetAttribute("height", "150px");
filterElement.SetAttribute("width", "150px");
defsElement.AppendChild(filterElement);


// Создайте элемент feColorMatrix
var feColorMatrixElement = (Aspose.Svg.Filters.SVGFEColorMatrixElement)document.CreateElementNS(SvgNamespace, "feColorMatrix");
feColorMatrixElement.In1.BaseVal = "SourceGraphic";
feColorMatrixElement.SetAttribute("type", "saturate");
feColorMatrixElement.SetAttribute("values", "0.2");
filterElement.AppendChild(feColorMatrixElement);

// Создайте текстовый элемент и добавьте в svgElement
var textElement = (Aspose.Svg.SVGTextElement)document.CreateElementNS(SvgNamespace, "text");
textElement.Style.FontSize = "5em";
textElement.SetAttribute("x", "20px");
textElement.SetAttribute("fill", "blue");
textElement.SetAttribute("y", "100px");
textElement.TextContent = "Aspose.SVG for .NET API";
textElement.SetAttribute("filter", "url(#shadow)");
svgElement.InsertBefore(textElement, svgElement.FirstChild);

// Сохраните документ SVG.
document.Save(Path.Combine(dataDir, "TextSaturation.svg"));

Получите бесплатную лицензию API

Вы можете запросить бесплатную временную лицензию, чтобы полностью оценить все функции API.

Вывод

В этой статье вы узнали, как программно применить насыщенность текста к изображению SVG на C#. Принимая во внимание, что вы можете заглянуть в раздел документация, чтобы узнать о различных других функциях, включенных в API. Если вы хотите обсудить какую-либо проблему или неясность, свяжитесь с нами на бесплатном форуме поддержки.

Смотрите также