Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Réponse rapide: Pour créer des icônes SVG en Python, utilisez un petit viewBox carré, créez des formes simples et des éléments <path> avec
create_element_ns(), regroupez les éléments liés si nécessaire, définissez les attributs fill et stroke, puis enregistrez le résultat comme fichier SVG.
1from aspose.svg import SVGDocument
2
3with SVGDocument() as document:
4 svg = document.root_element
5 svg.set_attribute("viewBox", "0 0 64 64")
6 circle = document.create_element_ns("http://www.w3.org/2000/svg", "circle")
7 circle.set_attribute("cx", "32")
8 circle.set_attribute("cy", "32")
9 circle.set_attribute("r", "28")
10 svg.append_child(circle)
11 document.save("icon.svg")Dans cet article, vous apprendrez à:
viewBox carré;Les icônes SVG générées fonctionnent mieux lorsque le système de coordonnées est simple, la palette limitée et la structure des formes facile à inspecter. Un viewBox de 64x64 ou 100x100 suffit souvent pour de petites icônes.
| Partie de l’icône | Élément SVG typique | Notes |
|---|---|---|
| Badge de fond | <circle> ou <rect> | Utilisez une forme remplie simple |
| Marque du symbole | <path>, <polyline> ou <polygon> | Gardez les path data courtes et lisibles |
| Style partagé | <g> | Placez fill, stroke ou stroke-linecap communs sur un groupe |
| Canevas scalable | viewBox racine | Utilisez un seul système de coordonnées pour toutes les tailles d’icône |
Utilisez ce workflow lorsque vous avez besoin d’une icône générée plutôt que de modifier un fichier SVG existant:
SVGDocument.viewBox carré, comme 0 0 64 64, avec
set_attribute().create_element_ns().<path>, <polyline>, <polygon> ou des formes simples.fill, stroke, stroke-linecap et stroke-linejoin avec
set_attribute(), puis ajoutez chaque élément visible avec
append_child().document.save() et vérifiez le résultat à sa taille d’affichage finale.L’exemple suivant crée une icône circulaire simple avec coche. Le cercle est l’arrière-plan du badge, et la coche est une <polyline> avec des extrémités et jonctions arrondies contrôlées par stroke-linecap et stroke-linejoin.
1import os
2from aspose.svg import SVGDocument
3
4namespace_uri = "http://www.w3.org/2000/svg"
5
6output_folder = "output/"
7output_path = os.path.join(output_folder, "check-badge-icon.svg")
8os.makedirs(output_folder, exist_ok=True)
9
10with SVGDocument() as document:
11 svg = document.root_element
12 svg.set_attribute("width", "64")
13 svg.set_attribute("height", "64")
14 svg.set_attribute("viewBox", "0 0 64 64")
15
16 badge = document.create_element_ns(namespace_uri, "circle")
17 badge.set_attribute("cx", "32")
18 badge.set_attribute("cy", "32")
19 badge.set_attribute("r", "28")
20 badge.set_attribute("fill", "#0084A5")
21 badge.set_attribute("stroke", "#00637C")
22 badge.set_attribute("stroke-width", "4")
23 svg.append_child(badge)
24
25 check = document.create_element_ns(namespace_uri, "polyline")
26 check.set_attribute("points", "19,33 28,42 46,23")
27 check.set_attribute("fill", "none")
28 check.set_attribute("stroke", "#ffffff")
29 check.set_attribute("stroke-width", "6")
30 check.set_attribute("stroke-linecap", "round")
31 check.set_attribute("stroke-linejoin", "round")
32 svg.append_child(check)
33
34 document.save(output_path)Cette icône utilise peu d’éléments, ce qui rend la sortie facile à modifier plus tard. Utilisez ce style pour les icônes d’état, badges d’interface, boutons simples et marqueurs visuels générés.
L’illustration montre le résultat de l’exemple: l’élément circulaire <circle> crée le badge, et la <polyline> blanche crée la coche. Le viewBox de 64x64 garde les coordonnées compactes et facilite la mise à l’échelle de l’icône.
![]()
Utilisez <path> lorsque la marque de premier plan n’est pas une simple ligne ou un <polygon>. L’exemple suivant crée une petite icône de scintillement avec un rectangle arrondi en arrière-plan et une marque de chemin.
1import os
2from aspose.svg import SVGDocument
3
4namespace_uri = "http://www.w3.org/2000/svg"
5
6output_folder = "output/"
7output_path = os.path.join(output_folder, "spark-icon.svg")
8os.makedirs(output_folder, exist_ok=True)
9
10with SVGDocument() as document:
11 svg = document.root_element
12 svg.set_attribute("width", "64")
13 svg.set_attribute("height", "64")
14 svg.set_attribute("viewBox", "0 0 64 64")
15
16 background = document.create_element_ns(namespace_uri, "rect")
17 background.set_attribute("x", "4")
18 background.set_attribute("y", "4")
19 background.set_attribute("width", "56")
20 background.set_attribute("height", "56")
21 background.set_attribute("rx", "12")
22 background.set_attribute("fill", "#28B7FF")
23 svg.append_child(background)
24
25 spark = document.create_element_ns(namespace_uri, "path")
26 spark.set_attribute("d", "M32 13 L38 27 L52 32 L38 37 L32 51 L26 37 L12 32 L26 27 Z")
27 spark.set_attribute("fill", "#ff28f4")
28 spark.set_attribute("stroke", "#ffffff")
29 spark.set_attribute("stroke-width", "3")
30 svg.append_child(spark)
31
32 document.save(output_path)La marque <path> garde l’icône compacte. Si votre application calcule la géométrie d’icône à partir d’entrées utilisateur, gardez la logique de construction du chemin près des valeurs qui décrivent la forme.
L’illustration montre l’icône de scintillement générée. Le <rect> arrondi fournit l’arrière-plan bleu, tandis que <path> dessine la marque de premier plan depuis une valeur d compacte.
![]()
| Problème | Solution |
|---|---|
| L’icône est recadrée | Laissez une marge dans le viewBox pour stroke et les coins arrondis |
| L’icône semble floue en petite taille | Utilisez une géométrie claire, peu de détails et des valeurs stroke-width cohérentes |
| La marque est difficile à recolorer | Gardez le premier plan et l’arrière-plan comme éléments séparés |
| Le fichier est trop complexe | Préférez des formes simples et des path data courtes pour les icônes d’interface |
| L’icône se met mal à l’échelle | Définissez un viewBox carré stable et évitez de coder uniquement des positions en pixels |
Un viewBox carré comme 0 0 64 64 ou 0 0 100 100 est généralement le plus simple pour les icônes générées. Il fournit un système de coordonnées prévisible qui se met proprement à l’échelle.
Utilisez des formes de base lorsque l’icône peut être construite avec des cercles, rectangles, lignes ou polygones. Utilisez des chemins pour les marques personnalisées, courbes ou contours complexes compacts.
Oui. Réutilisez le même viewBox, la même palette, les mêmes valeurs stroke-width et les mêmes fonctions d’aide entre les icônes afin que le jeu reste visuellement cohérent.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.