Nasycenie tekstu w SVG C#

Nasycenie obrazu jest określane jako intensywność kolorów. Czasami może być konieczne dodanie tekstu do obrazu SVG i nasycenie go. Zgodnie z takimi scenariuszami, w tym artykule opisano, jak programowo wykonać nasycenie tekstu w obrazach SVG w języku C#.

C# API do nasycenia tekstu w obrazie SVG — instalacja

Interfejs API Aspose.SVG for .NET umożliwia tworzenie obrazów SVG lub manipulowanie nimi. Możesz stosować różne filtry i pracować z wieloma właściwościami obrazów Scalable Vector Graphics, a także konwertować obrazy SVG do obsługiwanych formatów. Po prostu pobierz plik DLL lub uruchom następujące polecenie instalacji NuGet:

PM> Install-Package Aspose.SVG

Jak nasycić tekst w obrazie SVG w C#

Możesz wstawić tekst do obrazu SVG i nasycić go, wykonując następujące czynności:

  1. Utwórz obiekt klasy SVGDocument.
  2. Utwórz defs i element filtrujący.
  3. Utwórz element feColorMatrix i dodaj tekst do pliku SVG.
  4. Zapisz wyjściowy obraz SVG.

W poniższej sekcji szczegółowo opisano, jak wykonać te kroki we fragmencie kodu C#:

Programowo nasycaj tekst w obrazie SVG w C#

Możesz nasycić tekst w obrazie SVG, wykonując następujące czynności:

  1. Utwórz obiekt klasy SVGDocument.
  2. Uzyskaj dostęp do głównego elementu SVG i ustaw adres URL przestrzeni nazw.
  3. Utwórz obiekt klasy SVGDefsElement i dodaj go do elementu SVG.
  4. Zainicjuj instancję klasy SVGFEColorMatrixElement i ustaw różne wartości.
  5. Zdefiniuj obiekt klasy SVGTextElement i dodaj tekst do pliku SVG.
  6. Na koniec wyeksportuj wyjściowy obraz SVG za pomocą metody Save().

Poniższy fragment kodu pokazuje, jak utworzyć efekt nasycenia za pomocą macierzy kolorów w języku C#:

// Utwórz instancję klasy SVGDocument
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument();

// Ustaw adres URL przestrzeni nazw SVG
string SvgNamespace = "http://www.w3.org/2000/svg";
// Pobierz główny element svg dokumentu
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;


// Utwórz element defs i dodaj go do elementu svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Utwórz element filtru i dodaj go do elementu 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);


// Utwórz element 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);

// Utwórz element tekstowy i dodaj go do elementu 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);

// Zapisz dokument SVG
document.Save(Path.Combine(dataDir, "TextSaturation.svg"));

Uzyskaj bezpłatną licencję API

Możesz poprosić o bezpłatną licencję tymczasową, aby w pełni wykorzystać wszystkie funkcje interfejsu API.

Wniosek

W tym artykule nauczyłeś się, jak programowo zastosować nasycenie tekstu w obrazie SVG w języku C#. Natomiast możesz zajrzeć do sekcji documentation, aby poznać różne inne funkcje zawarte w interfejsie API. Jeśli chcesz omówić swoje wątpliwości lub niejasności, skontaktuj się z nami na darmowym forum pomocy.

Zobacz też