Saturación de texto en SVG C#

La saturación en una imagen se describe como la intensidad de los colores. A veces, es posible que necesite agregar texto en una imagen SVG y saturarla. De acuerdo con tales escenarios, este artículo cubre cómo realizar la saturación de texto en imágenes SVG mediante programación en C#.

API de C# para saturar texto en imagen SVG - Instalación

Aspose.SVG para .NET La API es capaz de crear o manipular imágenes SVG. Puede aplicar diferentes filtros y trabajar con muchas propiedades de las imágenes de gráficos vectoriales escalables, así como convertir las imágenes SVG a formatos compatibles. Simplemente descargue el archivo DLL o ejecute el siguiente comando de instalación NuGet:

PM> Install-Package Aspose.SVG

Cómo saturar texto en una imagen SVG en C#

Puede insertar texto en una imagen SVG y saturarlo con los siguientes pasos:

  1. Cree un objeto de clase SVGDocument.
  2. Cree una definición y un elemento de filtro.
  3. Cree un elemento feColorMatrix y agregue texto al SVG.
  4. Guarde la imagen SVG de salida.

La siguiente sección explica más detalladamente cómo realizar estos pasos en un fragmento de código C#:

Saturar texto en imagen SVG mediante programación en C#

Puede saturar el texto en una imagen SVG con los siguientes pasos:

  1. Cree un objeto de clase SVGDocument.
  2. Acceda al elemento SVG raíz y establezca la URL del espacio de nombres.
  3. Cree un objeto de clase SVGDefsElement y agréguelo al elemento SVG.
  4. Inicialice una instancia de clase SVGFEColorMatrixElement y establezca diferentes valores.
  5. Defina un objeto de clase SVGTextElement y agregue texto al SVG.
  6. Finalmente, exporte la imagen SVG de salida con el método Save().

El fragmento de código siguiente muestra cómo crear un efecto de saturación con la matriz de color en C#:

// Crear una instancia de la clase SVGDocument
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument();

// Establecer URL de espacio de nombres SVG
string SvgNamespace = "http://www.w3.org/2000/svg";
// Obtenga el elemento svg raíz del documento
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;


// Cree un elemento defs y agréguelo a svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Cree un elemento de filtro y agréguelo a 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);


// Crear un 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);

// Cree un elemento de texto y agréguelo a 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);

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

Obtenga una licencia de API gratuita

Puede solicitar una licencia temporal gratuita para evaluar todas las características de la API a su máxima capacidad.

Conclusión

En este artículo, ha aprendido cómo aplicar la saturación de texto en una imagen SVG mediante programación en C#. Mientras que puede echar un vistazo a la sección documentación para conocer otras funciones incluidas en la API. En caso de que desee analizar alguna de sus inquietudes o ambigüedades, no dude en comunicarse con nosotros en el foro de soporte gratuito.

Ver también