Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Les Element Builders sont des constructions logicielles ou des classes conçues pour faciliter la création ou la modification d’éléments SVG. Ces générateurs suivent généralement des modèles de conception, tels que le modèle Fluent Builder, qui fournissent une syntaxe fluide et expressive lors de la définition des attributs et de la structure des éléments SVG.
Dans l’API Aspose.SVG Builder, tous les générateurs d’éléments, tels que SVGSVGElementBuilder, SVGGElementBuilder et autres, héritent de la classe principale SVGElementBuilder. Cette structure d’héritage rationalise le processus de création et de modification des éléments SVG, garantissant ainsi la cohérence et l’efficacité entre les différents types d’éléments.
Les générateurs d’éléments fournissent la méthode
Build(Document document), permettant la création de nouveaux éléments SVG et leur ajout à un document SVG et la méthode
Build(T element) pour mettre à jour les éléments SVG existants.
Cet article se penche sur les générateurs d’éléments utilisés dans l’API Aspose.SVG Builder. Vous verrez leur efficacité dans la manipulation SVG. Vous découvrirez la classe SVGSVGElementBuilder, ses constructeurs spécialisés et comment ils simplifient la programmation SVG.
L’API Aspose.SVG SVG Builder utilise le modèle Fluent Builder, une méthodologie de conception qui correspond parfaitement au besoin de simplicité, de clarté et de polyvalence dans la manipulation SVG.
Dans l’API SVG Builder, le modèle Fluent Builder est utilisé pour simplifier la création et la mise à jour des éléments SVG, rendant le processus intuitif et moins sujet aux erreurs. L’essence de ce modèle réside dans les méthodes qui configurent un élément SVG puis renvoient un objet constructeur. Cette conception fournit une manière cohérente et cohérente de relier les méthodes, ce qui est particulièrement efficace pour réduire la complexité associée à la création et à la gestion des éléments SVG.
Dans ce contexte, les expressions lambda sont utilisées pour améliorer la clarté et la concision des méthodes de configuration du constructeur. Les expressions Lambda vous permettent de définir les attributs et les styles des éléments SVG de manière détaillée mais compacte. Par exemple, lors de l’ajout d’un élément cercle, l’expression lambda fournit une configuration lisible en ligne:
1 var svgElement = new SVGSVGElementBuilder()
2 .AddCircle(circle => circle
3 .Cx(100).Cy(100).R(50)
4 .Fill(Color.Red).Stroke(Paint.None)
5 .StrokeWidth(2))
6 .Build();Ici, circle => circle.Cx(100).Cy(100).R(50).Fill(Color.Red).Stroke(Paint.None).StrokeWidth(2) est une manière succincte de configurer le cercle. propriétés, telles que son centre, son rayon, son remplissage et son contour. Cette approche simplifie non seulement la configuration des éléments, mais améliore également la lisibilité et la maintenabilité du code.
Ici, nous explorerons une approche concise et élégante pour créer des SVG à partir de zéro en utilisant C#.
1using Aspose.Svg.Builder;
2using System.Drawing;
3using System.IO; 1 // Create SVG from scratch in C# using Builder API
2
3 // Create an <svg> element with specified width, height and viewBox, and add into it other required elements
4 SVGSVGElement svg = new SVGSVGElementBuilder()
5 .Width(700).Height(300)
6 .ViewBox(0, 0, 700, 300)
7
8 .AddG(g => g
9 .AddCircle(circle => circle.Cx(130).Cy(130).R(60).Fill(Paint.None).Stroke(Color.FromArgb(200, 0, 0)).StrokeWidth(70).StrokeDashArray(2, 14))
10 .AddText("I can create SVG from scratch!", x: 270, y: 140, fontSize: 30, fill: Color.Teal)
11 )
12 .Build(document.FirstChild as SVGSVGElement);
13
14 // Save the document
15 document.Save(Path.Combine(OutputDir, "svg-from-scratch.svg"));
16}L’exemple utilise un modèle Fluent Builder dans SVGSVGElementBuilder pour construire les éléments SVG. Ce modèle fournit un moyen expressif et maintenable de générer des documents SVG par rapport à l’approche décrite dans l’article Modifier le fichier SVG, qui s’appuie davantage sur la manipulation DOM de bas niveau et la définition d’attributs explicites.

Ainsi, l’API SVG Builder offre un moyen flexible et efficace de générer des graphiques vectoriels en C#. En tirant parti des Element Builders et Builder Pattern, vous pouvez rationaliser le processus de création de SVG à partir de zéro. Cette approche:
cx, cy, r, fill, etc., sont obtenus avec des appels de méthode directement sur le constructeur.Une technique puissante pour éditer par programme des SVG consiste à utiliser Element Builders.
L’édition de fichiers SVG à l’aide de générateurs d’éléments offre une approche puissante et flexible pour manipuler les graphiques vectoriels par programmation. Dans l’exemple suivant, nous prenons un fichier SVG existant, y ajoutons quelques éléments et l’enregistrons:
1using Aspose.Svg.Builder;
2using System.Drawing;
3using System.IO; 1// Add multiple shapes (circle and polyline) to an existing SVG document using SVG Builder
2
3string documentPath = Path.Combine(DataDir, "circles.svg");
4
5// Initialize an SVG document
6using (SVGDocument document = new SVGDocument(documentPath))
7{
8 // Create a <circle> element with attributes
9 SVGCircleElement circle = new SVGCircleElementBuilder()
10 .Cx(350).Cy(70).R(50).Fill(Paint.None).Stroke(Color.FromArgb(80, 132, 132)).StrokeWidth(10)
11 .Build(document);
12
13 // Append the newly created <circle> element to the root <svg> element
14 document.RootElement.AppendChild(circle);
15
16 // Create a <polyline> element with attributes
17 SVGPolylineElement polyline = new SVGPolylineElementBuilder()
18 .Points(new double[] { 125, 130, 275, 180, 425, 130 }).Stroke(Color.FromArgb(80, 132, 132)).Fill(Paint.None).StrokeWidth(10)
19 .Build(document);
20
21 // Append the newly created <polyline> element to the root <svg> element
22 document.RootElement.AppendChild(polyline);
23
24 // Save the document
25 document.Save(Path.Combine(OutputDir, "circles-edited.svg"));
26}Dans cet exemple:
<g> (groupe) est créé à l’aide de
SVGGElementBuilder. Des attributs tels que fill, stroke et stroke-width sont définis pour cet élément de groupe.<g>, les éléments <circle> et <polyline> sont configurés à l’aide du Fluent Builder Pattern.Document document) est appelée sur le SVGGElementBuilder pour construire l’élément <g> avec ses éléments enfants.<g> nouvellement créé est ajouté en tant qu’enfant à l’élément racine <svg> du document SVG.La figure (a) montre une visualisation du fichier circles.svg d’origine et la figure (b) montre une image du fichier circles-edited.svg modifié avec des éléments de cercle et de polyligne ajoutés.

Dans l’exemple C# suivant, nous mettons à jour un document SVG existant en modifiant la couleur de remplissage et de contour du premier élément SVG <circle> dans le document:
1using Aspose.Svg.Builder;
2using System.Drawing;
3using System.Linq;
4using System.IO; 1// Modify an existing SVG element in C# using SVG Builder
2
3string documentPath = Path.Combine(DataDir, "circles.svg");
4
5// Initialize an SVG document
6using (SVGDocument document = new SVGDocument(documentPath))
7{
8 // Assume an existing SVG element is part of the document
9 SVGCircleElement circle = document.GetElementsByTagName("circle").First() as SVGCircleElement;
10
11 // Modify the first <circle> element using SVGCircleElementBuilder
12 new SVGCircleElementBuilder()
13 .Stroke(Color.DarkRed).Fill(Color.LightGray)
14
15 // The first <circle> element is now updated with new configurations
16 .Build(circle);
17
18 // Save the document
19 document.Save(Path.Combine(OutputDir, "circles-modified.svg"));
20}Les constructeurs d’éléments proposent la méthode
Build(T element) pour mettre à jour les éléments SVG existants, permettant de modifier leurs attributs ou styles. La figure (a) montre le fichier circles.svg d’origine et la figure (b) montre une image du fichier circles-modified.svg modifié avec le premier élément de cercle recoloré.

L’extrait de code suivant montre comment utiliser les générateurs d’éléments pour créer un document SVG avec divers éléments de forme SVG.
1using Aspose.Svg.Builder;
2using System.Drawing;
3using System.IO; 1// Create all basic SVG shapes programmatically in C# using SVG Builder
2
3string svgContent = "<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>";
4using (SVGDocument document = new SVGDocument(svgContent, "."))
5{
6 SVGSVGElement svg = new SVGSVGElementBuilder()
7 .Width(100, LengthType.Percentage).Height(100, LengthType.Percentage)
8 .ViewBox(0, 0, 800, 800)
9
10 .AddG(g => g.FontSize(20).TextAnchor(TextAnchor.End)
11 .AddText("<rect>", y: 30)
12 .AddText("<circle>", y: 70)
13 .AddText("<ellipse>", y: 110)
14 .AddText("<line>", y: 150)
15 .AddText("<polyline>", x: 300, y: 30)
16 .AddText("<polygon>", x: 300, y: 70)
17 .AddText("<path>", x: 300, y: 110)
18 )
19
20 .AddG(gg => gg.Fill(Color.Teal).StrokeWidth(3)
21 .AddRect(r => r.X(35).Y(5).Width(30).Height(30))
22 .AddCircle(c => c.Cx(50).Cy(60).R(17))
23 .AddEllipse(e => e.Cx(50).Cy(100).Rx(25).Ry(12))
24 .AddLine(l => l.X1(30).X2(70).Y1(140).Y2(140).Stroke(Color.Teal))
25 )
26 .AddG(ggg => ggg.Fill(Paint.None).StrokeWidth(3).Stroke(Color.Teal).Transform(t => t.Translate(300, -160))
27 .AddPolygon(points: new double[] { 30, 215, 90, 215, 120, 230, 70, 240, 30, 215 }, fill: Color.Teal)
28 .AddPolyline(points: new double[] { 30, 200, 65, 170, 90, 190, 120, 180 })
29 .AddPath(d: path => path.M(30, 275).Q(55, 250, 70, 250).T(80, 275).T(120, 260))
30 )
31
32 .Build(document.FirstChild as SVGSVGElement);
33 document.Save(Path.Combine(OutputDir, "svg-elements.svg"));
34}
Les générateurs d’éléments fournissent une syntaxe fluide et expressive pour construire des éléments SVG, améliorant ainsi la lisibilité et la maintenabilité du code. Dans cet exemple, le générateur d’éléments, tel que SVGSVGElementBuilder, est utilisé pour construire un élément SVG avec les attributs width, height et viewBox. Le modèle Fluent Builder est ensuite utilisé pour créer des formes telles que des rectangles, des cercles, des ellipses, des lignes, des polylignes, des polygones et des chemins, chacun étant positionné et stylé en conséquence dans les éléments <g>.
Voir également
stroke ou fill pour diverses formes et éléments SVG lors du remplissage avec de la peinture, un motif ou un dégradé.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.