Saturação de texto em SVG C#

A saturação em uma imagem é descrita como a intensidade das cores. Às vezes, pode ser necessário adicionar texto em uma imagem SVG e saturá-la. De acordo com esses cenários, este artigo aborda como realizar a saturação de texto em imagens SVG programaticamente em C#.

API C# para saturar texto em imagem SVG - Instalação

Aspose.SVG for .NET API é capaz de criar ou manipular imagens SVG. Você pode aplicar diferentes filtros e trabalhar com muitas propriedades das imagens Scalable Vector Graphic, bem como converter as imagens SVG para formatos suportados. Basta baixar o arquivo DLL ou executar o seguinte comando de instalação NuGet:

PM> Install-Package Aspose.SVG

Como saturar texto em imagem SVG em C

Você pode inserir texto em uma imagem SVG e saturá-la com as seguintes etapas:

  1. Crie um objeto de classe SVGDocument.
  2. Crie um defs e um elemento de filtro.
  3. Crie um elemento feColorMatrix e adicione texto ao SVG.
  4. Salve a imagem SVG de saída.

A seção a seguir detalha ainda mais como executar essas etapas em um trecho de código C#:

Saturar texto na imagem SVG programaticamente em C

Você pode saturar o texto em uma imagem SVG com as seguintes etapas:

  1. Crie um objeto de classe SVGDocument.
  2. Acesse o elemento SVG raiz e defina o URL do namespace.
  3. Crie um objeto de classe SVGDefsElement e adicione-o ao elemento SVG.
  4. Inicialize uma instância da classe SVGFEColorMatrixElement e defina valores diferentes.
  5. Defina um objeto de classe SVGTextElement e adicione texto ao SVG.
  6. Por fim, exporte a imagem SVG de saída com o método Save().

O trecho de código abaixo demonstra como criar um efeito de saturação com a matriz de cores em C#:

// Crie uma instância da classe SVGDocument
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument();

// Definir URL do namespace SVG
string SvgNamespace = "http://www.w3.org/2000/svg";
// Obter elemento svg raiz do documento
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;


// Crie um elemento defs e adicione ao svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Crie um elemento de filtro e adicione ao 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);


// Criar um elemento 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);

// Crie um elemento de texto e adicione ao 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);

// Salve o documento SVG
document.Save(Path.Combine(dataDir, "TextSaturation.svg"));

Obtenha uma licença de API gratuita

Você pode solicitar uma licença temporária gratuita para avaliar todos os recursos da API em sua capacidade total.

Conclusão

Neste artigo, você aprendeu como aplicar a saturação de texto em uma imagem SVG programaticamente em C#. Visto que você pode dar uma olhada na seção documentação para conhecer vários outros recursos incluídos na API. Caso você queira discutir alguma de suas preocupações ou ambiguidade, sinta-se à vontade para entrar em contato conosco no fórum de suporte gratuito.

Veja também