Textmättnad i SVG C#

Mättnad i en bild beskrivs som färgernas intensitet. Ibland kan du behöva lägga till text i en SVG-bild och mätta den. I enlighet med sådana scenarier täcker den här artikeln hur man utför textmättnad i SVG-bilder programmatiskt i C#.

C# API för att mätta text i SVG Image - Installation

Aspose.SVG for .NET API kan skapa eller manipulera SVG-bilder. Du kan använda olika filter och arbeta med många egenskaper hos de skalbara vektorgrafikbilderna, samt konvertera SVG-bilderna till format som stöds. Ladda bara ned DLL-filen eller kör följande installationskommando NuGet:

PM> Install-Package Aspose.SVG

Hur man mättar text i SVG-bild i C#

Du kan infoga text i en SVG-bild och mätta den med följande steg:

  1. Skapa ett SVGDocument-klassobjekt.
  2. Skapa ett defs och filterelement.
  3. Skapa ett feColorMatrix-element och lägg till text i SVG.
  4. Spara den utgående SVG-bilden.

Följande avsnitt utvecklar ytterligare hur man utför dessa steg i ett C#-kodavsnitt:

Mätta text i SVG-bild Programmatiskt i C#

Du kan mätta text i en SVG-bild med följande steg:

  1. Skapa ett klassobjekt SVGDocument.
  2. Gå till SVG-rotelementet och ställ in namnområdets URL.
  3. Skapa ett klassobjekt SVGDefsElement och lägg till det i SVG-elementet.
  4. Initiera en klassinstans SVGFEColorMatrixElement och ställ in olika värden.
  5. Definiera ett klassobjekt SVGTextElement och lägg till text i SVG.
  6. Exportera slutligen den utgående SVG-bilden med metoden Save().

Kodavsnittet nedan visar hur man skapar en mättnadseffekt med färgmatrisen i C#:

// Skapa en instans av SVGDocument-klassen
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument();

// Ställ in SVG-namnutrymmesadress
string SvgNamespace = "http://www.w3.org/2000/svg";
// Hämta root svg-elementet i dokumentet
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;


// Skapa ett defs-element och lägg till i svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Skapa ett filterelement och lägg till i 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);


// Skapa ett feColorMatrix-element
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);

// Skapa ett textelement och lägg till i 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);

// Spara SVG-dokumentet
document.Save(Path.Combine(dataDir, "TextSaturation.svg"));

Skaffa en gratis API-licens

Du kan begära en gratis temporär licens för att utvärdera alla funktioner i API:t till sin fulla kapacitet.

Slutsats

I den här artikeln har du lärt dig hur du applicerar textmättnad i en SVG-bild programmatiskt i C#. Medan du kan ta en titt på avsnittet dokumentation för att lära dig olika andra funktioner som ingår i API:et. Om du vill diskutera några av dina problem eller tvetydigheter får du gärna kontakta oss på gratis supportforum.

Se även