Schlagschatten-Effekt SVG C#

SVG-Bilder sind webfreundliche Vektorgrafiken, die durchsucht, indiziert, komprimiert und mit Skripten versehen werden können. Wohingegen Schatten ein gängiges Designmerkmal sind, das verwendet wird, um Bilder ästhetisch ansprechend und hervorstechend zu machen. Manchmal müssen Sie einem SVG-Bild möglicherweise einen Schlagschatteneffekt hinzufügen, z. B. ein Symbol oder Text usw. Dementsprechend wird in diesem Artikel erläutert, wie Sie einen Schlagschatteneffekt auf einem SVG-Bild programmgesteuert in C# erstellen.

Schlagschatteneffekt auf SVG-Bild – kostenloser C#-API-Download

Aspose.SVG for .NET unterstützt die Arbeit mit SVG-Bildern, da es viele Funktionen zum programmgesteuerten Bearbeiten, Aktualisieren oder Konvertieren von skalierbaren Vektorgrafiken in C# bietet. Greifen Sie einfach auf die Referenz-DLL-Dateien auf der Seite Neue Versionen zu oder führen Sie den folgenden NuGet-Befehl aus, um ihn zusammen mit allen Abhängigkeiten, falls vorhanden, aus der NuGet-Galerie zu konfigurieren.

PM> Install-Package Aspose.SVG

So erstellen Sie einen Schlagschatteneffekt auf einem SVG-Bild in C#

Die folgenden Schritte beschreiben den gesamten Vorgang zum Hinzufügen eines Schlagschatteneffekts zu einem SVG-Bild:

  1. Erstellen Sie ein Objekt der SVGDocument-Klasse.
  2. Legen Sie die SVG-Namespace-URL fest und erhalten Sie das Root-SVG-Element.
  3. Erstellen Sie ein defs-Element und ein filterElement, um das feOffset-Filterprimitive anzuhängen.
  4. Erstellen Sie einen feBlend-Filter und ein Textelement.
  5. Speichern Sie das ausgegebene SVG-Bild mit dem Schlagschatten-Effekt, indem Sie die Save-Methode aufrufen.

Erstellen Sie einen Schlagschatteneffekt auf einem SVG-Bild programmgesteuert in C#

Bitte führen Sie die folgenden Schritte aus, um einen Schlagschatteneffekt auf einem SVG-Bild programmgesteuert in C# zu erstellen:

  1. Erstellen Sie ein Objekt der Klasse SVGDocument.
  2. Legen Sie die SVG-Namespace-URL fest und erhalten Sie das Root-SVG-Element.
  3. Erstellen Sie ein defs-Element und ein filterElement, um das feOffset-Filterprimitive anzuhängen.
  4. Erstellen Sie einen feBlend-Filter und ein Textelement.
  5. Speichern Sie das ausgegebene SVG-Bild mit einem Schlagschatteneffekt, indem Sie die Methode Save aufrufen.

Das folgende Code-Snippet zeigt, wie Sie einen Schlagschatteneffekt auf einem SVG-Bild in C# erstellen:

// Initialisiert ein Objekt der SVGDocument-Klasse
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument();

// Legen Sie die SVG-Namespace-URL fest
string SvgNamespace = "http://www.w3.org/2000/svg";

// Holen Sie sich das Root-Svg-Element des Dokuments
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;

// Erstellen Sie ein defs-Element und fügen Sie es dem svgElement hinzu
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Erstellen Sie ein Filterelement und fügen Sie es dem defsElement hinzu
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);

// Erstellen Sie ein feOffset-Filterprimitive und fügen Sie es dem filterElement hinzu
var feOffsetElement = (Aspose.Svg.Filters.SVGFEOffsetElement)document.CreateElementNS(SvgNamespace, "feOffset");
feOffsetElement.In1.BaseVal = "SourceAlpha";
feOffsetElement.SetAttribute("result", "offset");
feOffsetElement.SetAttribute("dx", "3");
feOffsetElement.SetAttribute("dy", "3");
filterElement.AppendChild(feOffsetElement);

//// Erstellen Sie ein feGaussianBlur-Filterelement und fügen Sie es dem filterElement hinzu
//var feGaussianBlurElement = (Aspose.Svg.Filters.SVGFEGaussianBlurElement)document.CreateElementNS(SvgNamespace, "feGaussianBlur");
//feGaußianBlurElement.In1.BaseVal = "offset";
//feGaußianBlurElement.StdDeviationX.BaseVal = 3;
//feGaußianBlurElement.StdDeviationY.BaseVal = 3;
//feGaußianBlurElement.SetAttribute("Ergebnis", "Blur");
//filterElement.AppendChild(feGaussianBlurElement);

// Erstellen Sie ein feBlend-Filterprimitive und fügen Sie es dem filterElement hinzu
var feBlendElement = (Aspose.Svg.Filters.SVGFEBlendElement)document.CreateElementNS(SvgNamespace, "feBlend");
feBlendElement.In1.BaseVal = "SourceGraphic";
feBlendElement.In2.BaseVal = "blur";
feBlendElement.SetAttribute("mode", "normal");
filterElement.AppendChild(feBlendElement);

// Erstellen Sie ein Textelement und fügen Sie es dem svgElement hinzu
var textElement = (Aspose.Svg.SVGTextElement)document.CreateElementNS(SvgNamespace, "text");
textElement.Style.FontSize = "5em";
textElement.SetAttribute("x", "20px");
textElement.SetAttribute("fill", "#C0C0C0");
textElement.SetAttribute("y", "100px");
textElement.TextContent = "Aspose.SVG API";
textElement.SetAttribute("filter", "url(#shadow)");
svgElement.InsertBefore(textElement, svgElement.FirstChild);

// Speichern Sie das SVG-Dokument
document.Save(Path.Combine(dataDir, "DropShadow.svg"));

Bitte beachten Sie, dass im obigen Code-Snippet einige Codezeilen auskommentiert sind. Sie können es auskommentieren, um den Gaußschen Unschärfeeffekt auf den Schatten anzuwenden, wenn Sie einen unscharfen Schlagschatteneffekt bevorzugen, der die Ausgabe mit einem glatteren Schatten hervorhebt.

Holen Sie sich eine kostenlose temporäre Lizenz

Sie können eine kostenlose temporäre Lizenz anfordern, um die API in vollem Umfang zu testen.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie in C# programmgesteuert einen Schlagschatteneffekt für ein SVG-Bild erstellen. Sie können ein vorhandenes SVG-Bild bearbeiten, indem Sie es laden, oder je nach Ihren Anforderungen ein neues SVG-Bild von Grund auf neu erstellen. Darüber hinaus können Sie den Abschnitt Dokumentation besuchen, um viele andere Funktionen der API kennenzulernen. Wenn Sie Fragen oder Bedenken mit uns besprechen müssen, zögern Sie bitte nicht, uns über Forum zu kontaktieren.

Siehe auch