Si vous travaillez avec des graphiques web, des tableaux de bord ou des rapports de données, vous avez probablement rencontré le besoin de transformer des images SVG en fichiers PNG standard. Peut-être que vous construisez une application Python qui crée des graphiques, des icônes ou des rapports visuels. Quel que soit le cas d’utilisation, convertir du code SVG en PNG est une tâche que vous aurez souvent à gérer.

Dans ce guide, nous allons expliquer comment convertir facilement le code et les fichiers SVG en format PNG en Python en utilisant une bibliothèque Python fiable conçue pour rendre et traiter les fichiers SVG avec une précision exceptionnelle.

What Is SVG Code, and Why Convert It to PNG?

SVG (Scalable Vector Graphics) est un format basé sur XML qui est idéal pour créer des visuels nets en deux dimensions. Étant donné qu’il est basé sur des vecteurs, une image SVG peut être agrandie à n’importe quelle taille sans perte de qualité, ce qui la rend parfaite pour les interfaces modernes, les graphiques de données et les graphiques web interactifs.

Mais voici le piège : alors que les SVG sont flexibles, les PNG sont souvent plus pratiques. Pourquoi ?

  • Les PNG fonctionnent partout dans tous les navigateurs, éditeurs et visionneuses.
  • Ils sont faciles à partager et à intégrer dans des documents, des présentations ou des e-mails.
  • Les images raster comme PNG se chargent généralement plus rapidement dans de nombreuses applications et environnements.

En termes simples, la conversion de code SVG en PNG permet de garantir que vos visuels ont l’air nets et cohérents sur chaque appareil et plateforme — même lorsque la prise en charge des vecteurs n’est pas garantie.

Bibliothèque Python pour convertir le code SVG en PNG

Aspose.SVG for Python via .NET est une API dédiée à l’analyse, à l’édition et au rendu des documents SVG dans les applications Python. Elle vous permet de :

  • Convertir les SVG en plusieurs formats, y compris PNG, JPEG, BMP, PDF et XPS.
  • Chargez des SVG à partir de chaînes, de fichiers ou d’URL.
  • Contrôlez la taille de l’image de sortie, la DPI et la couleur de fond.
  • Travailler entièrement hors ligne, aucun besoin de navigateurs ou de moteurs de rendu tiers.

Avant de plonger dans le code, assurez-vous d’avoir la bibliothèque installée. Vous pouvez télécharger Aspose.SVG for Python directement depuis la page des versions officielles, ou vous pouvez facilement l’ajouter en utilisant pip :

pip install aspose-svg-net

Convertir le code SVG en PNG en Python

Commençons par convertir le code SVG stocké sous forme de chaîne en une image PNG. Cette approche est idéale pour les SVG générés dynamiquement, tels que des graphiques ou des diagrammes reçus d’une API.

Suivez les étapes ci-dessous pour convertir le code SVG d’une chaîne en une image PNG :

  1. Chargez le code SVG en tant que chaîne en utilisant l’objet de classe SVGDocument.
  2. Créer une instance de la classe ImageRenderingOptions et spécifiez PNG comme format de sortie.
  3. Créer le ImageDevice pour écrire la sortie rendue dans un fichier.
  4. Rendre SVG en PNG en utilisant la méthode document.renderto(device).

L’exemple de code suivant montre comment convertir du code SVG d’une chaîne en une image PNG en utilisant Python.

import aspose.svg as svg
from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions

# SVG code as a string
svg_code = """
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200">
  <rect width="200" height="200" fill="lightblue"/>
  <circle cx="100" cy="100" r="80" fill="orange" stroke="black" stroke-width="2"/>
  <text x="100" y="110" text-anchor="middle" font-size="24" fill="white">SVG</text>
</svg>
"""

# 1. Charger à partir de la chaîne + URI de base (utilisez "." si vous ne comptez pas sur des ressources externes)
document = svg.SVGDocument(svg_code, ".")

# 2. Choisissez PNG comme sortie
options = ImageRenderingOptions()
options.format = ImageFormat.PNG

# 3. Créez un dispositif qui écrit la sortie rendue dans un fichier
device = ImageDevice(options, r"source_out.png")

# 4. Rendre SVG en PNG
document.render_to(device)
Convertir le code SVG en PNG en utilisant Python

Convertir le code SVG en PNG à l’aide de Python.

Convertir le code SVG d’un fichier en PNG en Python

Si vous avez déjà un fichier SVG enregistré sur le disque, vous pouvez le convertir directement en PNG. Cela est utile pour convertir des modèles, des icônes ou des graphiques vectoriels exportés.

Suivez les étapes ci-dessous pour convertir le code SVG d’un fichier en PNG :

  1. Chargez un fichier SVG existant en utilisant l’objet de classe SVGDocument.
  2. Créer un appareil de rendu d’image au format PNG.
  3. Render and save the image.

L’exemple de code suivant montre comment convertir du code SVG à partir d’un fichier en une image PNG en utilisant Python.

import aspose.svg as svg
from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions

# Load SVG file
document = svg.SVGDocument("aspose-svg-logo.svg")

# Pick PNG as output
options = ImageRenderingOptions()
options.format = ImageFormat.PNG

# Initialiser le dispositif de rendu PNG
device = ImageDevice(options, "aspose-svg-logo.png")

# Render and save the output
document.render_to(device)
Convertir le code SVG de fichier en PNG en Python

Convertir le code SVG d’un fichier en PNG en Python.

Ajuster la taille et la qualité de la sortie

Parfois, vous devez contrôler les dimensions de sortie, la DPI ou l’échelle du PNG. Aspose.SVG fournit des options flexibles pour cela.

Suivez les étapes ci-dessous pour ajuster la taille et la qualité de l’image de sortie :

  1. Définir les options de rendu avec une largeur, une hauteur ou un DPI personnalisés.
  2. Passez les options lors de la création du périphérique de rendu.
  3. Render and save.

Le code d’exemple suivant montre comment ajuster la taille et la qualité de l’image de sortie lors de la conversion du code SVG en PNG :

import aspose.svg as svg
from aspose.svg.drawing import Resolution
from aspose.svg.rendering.image import ImageDevice, ImageFormat, ImageRenderingOptions

# Load SVG file
document = svg.SVGDocument("aspose-svg-logo.svg")

# Pick PNG as output
options = ImageRenderingOptions()
options.format = ImageFormat.PNG

# Définir les options de rendu
options.page_setup.sizing.width = 600
options.page_setup.sizing.height = 400
options.horizontal_resolution = Resolution.from_dots_per_inch(96.0)
options.vertical_resolution = Resolution.from_dots_per_inch(96.0)

# Initialiser le périphérique de rendu PNG
device = ImageDevice(options, "aspose-svg-logo-resized.png")

# Render and save the output
document.render_to(device)

Convertir SVG en PNG en mémoire à l’aide de Python

Vous pouvez rendre des SVG entièrement en mémoire, ce qui est parfait pour les applications web ou les services cloud. Cette approche évite de créer des fichiers temporaires et est idéale pour les réponses API.

Suivez les étapes ci-dessous pour convertir SVG en PNG en mémoire à l’aide de Python :

  1. Créer un document SVG à partir d’une chaîne.
  2. Rendre à un flux en mémoire.
  3. Utilisez directement les octets PNG (par exemple, renvoyez via l’API).

L’exemple de code suivant montre comment convertir SVG en PNG en mémoire en utilisant Python :

import aspose.svg as svg
from aspose.svg.rendering.image import ImageDevice, ImageFormat
import io

svg_code = """
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
  <rect width="100" height="100" fill="green"/>
</svg>
"""

# Créer un document SVG à partir de chaîne
document = svg.SVGDocument(svg_code, ".")

# Choisissez le format PNG
opts = ImageRenderingOptions()
opts.format = ImageFormat.PNG

# Rendre dans un flux en mémoire
memory_stream = io.BytesIO()
device = ImageDevice(opts, memory_stream)
document.render_to(device)

# Access PNG bytes
png_data = memory_stream.getvalue()
print(f"Generated PNG size: {len(png_data)} bytes")

Output:

Generated PNG size: 34732 bytes

Obtenez une licence gratuite

Les produits Aspose fonctionnent en mode d’évaluation par défaut, ce qui peut ajouter des filigranes ou des limitations. Vous pouvez demander une licence temporaire gratuite sur la page de licence temporaire d’Aspose.Une fois appliquées, toutes les conversions s’exécuteront sans restrictions.

Convertir SVG en PNG en ligne gratuitement

Si vous avez juste besoin d’une conversion rapide sans codage, essayez le Free Online SVG to PNG Converter alimenté par Aspose. Il fonctionne directement dans votre navigateur et utilise le même moteur de rendu de haute qualité que l’API Python.

Image

SVG to PNG : Ressources gratuites

En plus de convertir le code SVG en PNG, suivez les ressources ci-dessous pour améliorer vos compétences. Vous trouverez tout, de la documentation claire et des guides pratiques pour les développeurs à des outils en ligne que vous pouvez essayer immédiatement. Prenez votre temps, explorez et maîtrisez Aspose.SVG à votre propre rythme, sans aucun coût.

Code SVG en PNG : FAQs

Q1 : Puis-je conserver la transparence dans la sortie PNG ?

Oui, Aspose.SVG préserve la transparence par défaut lors de la conversion.

Q2 : Est-ce que cela fonctionne sans outils externes ?

Oui. Aspose.SVG rend les SVG en interne sans dépendre des navigateurs ou d’Inkscape.

Q3 : Puis-je charger un SVG directement depuis la mémoire ou une URL ?

Oui, vous pouvez initialiser SVGDocument à partir d’une chaîne, d’un chemin de fichier ou d’une URL web.

Conclure

Dans cet article, vous avez juste vu comment convertir du code SVG et des fichiers en PNG en Python. Nous avons utilisé Aspose.SVG for Python via .NET pour gérer la conversion de SVG à PNG. Cela gère bien les chaînes, les fichiers et les polices, à peu près tout ce dont vous auriez besoin. Si vous créez des vignettes, exportez des graphiques ou générez des visuels pour des rapports, cette bibliothèque vous offre une flexibilité complète en ce qui concerne le rendu SVG. C’est un choix fiable pour quiconque a régulièrement besoin de transformer du code SVG en images PNG de haute qualité, le tout dans Python.

Vous avez une question ou vous êtes confronté à quelque chose de délicat ? Ne vous inquiétez pas ! Notre équipe est heureuse de vous aider ! Vous pouvez toujours nous contacter à tout moment sur le forum de support free support forum et obtenir des conseils directement des experts.

Voir aussi