Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
SVG Pattern (SVG-Musterung, Ornament, Mosaik) bieten eine vielseitige Möglichkeit, Formen und Elemente in SVG-Dokumenten zu füllen. Mit Mustern können Sie komplexe Texturen, Hintergründe und sich wiederholende Muster erstellen und so die visuelle Attraktivität von SVG-Grafiken verbessern.
SVG Pattern sind wiederverwendbare Grafikelemente, die zum Füllen von Formen, Text und Pfaden in einem SVG-Dokument verwendet werden können. Sie definieren ein grafisches Muster, das wiederholt oder in einem Bereich platziert werden kann und so Flexibilität bei der Schaffung unterschiedlicher visueller Effekte bietet. SVG Pattern werden mithilfe des Elements <pattern> definiert, das die grafischen Elemente (Formen, Bilder oder Verläufe) und Attribute enthält, die das Muster definieren.
Die Aspose.SVG Builder-API bietet den
SVGPatternElementBuilder, eine Builder-Klasse zum Erstellen eines SVG-Elements <pattern>. Diese Klasse stellt Methoden bereit, um verschiedene Attribute speziell für das Element <pattern> festzulegen und seinen Inhalt zu erstellen. Außerdem führt die SVG Builder API Syntax Sugar ein, um den Prozess der SVG-Erstellung und -Bearbeitung weiter zu verfeinern. Dazu gehören verschachtelte Builder für verschiedene SVG-Elemente, die eine intuitivere und effizientere Möglichkeit bieten, komplexe SVG-Strukturen zu definieren.
Dieser Artikel betrifft
PaintBuilder, eine Builder-Klasse zum Erstellen von Farbwerten für SVG-Elemente. Diese Klasse wird verwendet, um den Wert der Attribute stroke oder fill für verschiedene SVG-Formen und -Elemente anzugeben, wenn diese mit Farbe, Muster oder Farbverlauf gefüllt werden.
Der
PaintBuilder wird verwendet, um den Wert des Strichs oder der Füllung anzugeben, der für verschiedene SVG-Formen und -Elemente verwendet wird, wenn diese mit einem Muster, einem Farbverlauf oder einer beliebigen Farbe gefüllt werden. Im folgenden Beispiel legt die Methode
PaintServerId() der PaintBuilder-Klasse die Farbfüllung für den Paint-Server nach Id fest.
1using Aspose.Svg.Builder;
2using System.Drawing;
3using System.IO; 1// Create SVG pattern with polygons and apply as fill to rectangle using C# Builder API
2
3using (SVGDocument document = new SVGDocument())
4{
5 SVGSVGElement svg = new SVGSVGElementBuilder()
6 .Width(100, LengthType.Percentage).Height(100, LengthType.Percentage)
7 .ViewBox(0, 0, 400, 400)
8 .AddG(g => g
9 .AddPattern(p => p.Id("stars")
10 .ViewBox(0, 0, 20, 20)
11 .Width(5, LengthType.Percentage)
12 .Height(5, LengthType.Percentage)
13 .PatternUnits(CoordinateUnits.UserSpaceOnUse)
14 .AddPolygon(points: new double[] { 5, 0, 7, 3, 10, 5, 7, 7, 5, 10, 3, 7, 0, 5, 3, 3 }, fill: Color.Teal)
15 .AddPolygon(points: new double[] { 15, 0, 17, 3, 20, 5, 17, 7, 15, 10, 13, 7, 10, 5, 13, 3 }, fill: Color.DarkRed)
16 .AddPolygon(points: new double[] { 15, 10, 17, 13, 20, 15, 17, 17, 15, 20, 13, 17, 10, 15, 13, 13 }, fill: Color.DarkBlue)
17 )
18 .AddRect(r => r.Rect(20, 40, 440, 80).Fill(pt => pt.PaintServerId("stars")))
19 )
20 .Build(document.FirstChild as SVGSVGElement);
21 document.Save(Path.Combine(OutputDir, "pattern-stars.svg"));
22}In diesem Beispiel wird zunächst mit
AddPattern() ein Muster definiert, bei dem verschiedene farbige Polygone kombiniert werden, um ein komplexes Füllmuster zu erstellen. Die Methode AddPattern() fügt dem Builder eine <pattern>-Elementkonfiguration hinzu. Das Muster erhält die Bezeichnung stars. Anschließend wird dieses Muster mithilfe der Methode Fill() mit PaintServerId("stars"), die auf das zuvor definierte Muster verweist, auf ein Rechteckelement angewendet.

Das folgende C#-Codebeispiel zeigt, wie SVG Pattern erstellt und auf Formen im Dokument angewendet werden. Der Code stellt den Builder-im-Builder-Ansatz dar, der mehrere Builder-Klassen verwendet, wobei ein Builder in einem anderen verschachtelt ist, um die Konstruktion komplexer Objekte oder Strukturen zu erleichtern und einen modularen und strukturierten Ansatz für die Erstellung von SVG-Dokumenten bereitzustellen:
1using Aspose.Svg.Builder;
2using System.Drawing;
3using System.IO; 1// Create SVG patterns with reusable elements and apply them to circles using C# Builder API
2
3using (SVGDocument document = new SVGDocument())
4{
5 SVGSVGElement svg = new SVGSVGElementBuilder()
6 .Width(100, LengthType.Percentage).Height(100, LengthType.Percentage)
7 .ViewBox(0, 0, 600, 600)
8 .AddG(g => g
9 .FontFamily("Arial")
10 .FontSize(10)
11 .AddPattern(p => p.Id("Pat3a")
12 .Rect(0, 0, 20, 20)
13 .PatternUnits(CoordinateUnits.UserSpaceOnUse)
14 .AddRect(r => r.Rect(0, 0, 10, 10).Fill(Color.LightSlateGray))
15 .AddRect(r => r.Rect(10, 0, 10, 10).Fill(Color.Teal))
16 .AddRect(r => r.Rect(0, 10, 10, 10).Fill(Color.DarkRed))
17 .AddRect(r => r.Rect(10, 10, 10, 10).Fill(Color.Gold))
18 )
19 .AddPattern(p => p.Id("Pat3b")
20 .Href("#Pat3a")
21 .Width(23).Height(23)
22 )
23 .AddPattern(p => p.Id("Pat3c")
24 .Href("#Pat3a")
25 .Width(15).Height(15)
26 )
27 .AddCircle(circle => circle.Cx(90).Cy(130).R(70).Fill(pt => pt.PaintServerId("Pat3a")))
28 .AddText(t => t.X(55).Y(50)
29 .AddContent("Pattern #Pat3a")
30 )
31 .AddCircle(circle => circle.Cx(240).Cy(130).R(70).Fill(pt => pt.PaintServerId("Pat3b")))
32 .AddText(t => t.X(205).Y(50)
33 .AddContent("Pattern #Pat3b")
34 )
35 .AddCircle(circle => circle.Cx(390).Cy(130).R(70).Fill(pt => pt.PaintServerId("Pat3c")))
36 .AddText(t => t.X(355).Y(50)
37 .AddContent("Pattern #Pat3c")
38 )
39 )
40 .Build(document.FirstChild as SVGSVGElement);
41 document.Save(Path.Combine(OutputDir, "patterns.svg"));
42}
Im Beispiel werden dem SVG-Dokument drei verschiedene Muster mit den Namen Pat3a, Pat3b und Pat3c hinzugefügt.
Die Höhe und Breite einer Kachel in einem Musterelement definieren die Größe der wiederholten Mustereinheit im SVG-Dokument. Diese Größe bestimmt, wie das Muster aussieht, wenn es auf Formen oder Elemente im Dokument angewendet wird. Im Muster Pat3b wird durch Erhöhen der Höhe und Breite der Kachel die Mustereinheit vergrößert, was zu ungefüllten (transparenten) Bereichen führt. Beim Muster Pat3c führt die Verringerung der Höhe und Breite der Fliese dazu, dass das Muster dichter erscheint und ein anderer optischer Effekt entsteht.
Wenn Sie also die Höhe und Breite der Kachel in einem SVG-Element <pattern> anpassen, können Sie die Dichte und Wiederholung des Musters im SVG-Dokument steuern und verschiedene visuelle Effekte erstellen.
Siehe auch
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.