Насыщенность изображения описывается как интенсивность цветов. Иногда вам может понадобиться добавить текст в изображение SVG и насытить его. В соответствии с такими сценариями в этой статье рассказывается, как программно выполнить насыщение текста в изображениях SVG на C#.
- C# API для насыщения текста в изображении SVG — установка
- Как насытить текст в изображении SVG в C#
- Насыщать текст в изображении SVG программно на С#
C# API для насыщения текста в изображении SVG — установка
Aspose.SVG для .NET API позволяет создавать изображения SVG или управлять ими. Вы можете применять различные фильтры и работать со многими свойствами изображений масштабируемой векторной графики, а также конвертировать изображения SVG в поддерживаемые форматы. Просто загрузите файл DLL или выполните следующую команду установки NuGet:
PM> Install-Package Aspose.SVG
Как насытить текст в изображении SVG в C#
Вы можете вставить текст в изображение SVG и насытить его, выполнив следующие действия:
- Создайте объект класса SVGDocument.
- Создайте элемент defs и filter.
- Создайте элемент feColorMatrix и добавьте текст в SVG.
- Сохраните выходное изображение SVG.
В следующем разделе более подробно рассматривается, как выполнить эти шаги во фрагменте кода C#:
Насыщать текст в изображении SVG программно на С#
Вы можете насытить текст в изображении SVG, выполнив следующие действия:
- Создайте объект класса SVGDocument.
- Получите доступ к корневому элементу SVG и задайте URL-адрес пространства имен.
- Создайте объект класса SVGDefsElement и добавьте его к элементу SVG.
- Инициализируйте экземпляр класса SVGFEColorMatrixElement и установите разные значения.
- Определите объект класса SVGTextElement и добавьте текст в SVG.
- Наконец, экспортируйте выходное изображение 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. Если вы хотите обсудить какую-либо проблему или неясность, свяжитесь с нами на бесплатном форуме поддержки.