Convertir SVG en XML avec l'encodage Base64

XML est un format basé sur du texte et, bien qu’il soit excellent pour structurer les données, il ne gère pas très bien les données binaires (comme les images). SVG est un format basé sur XML, il peut donc sembler inutile de l’encoder en Base64 et de l’enregistrer au format XML. Cependant, SVG peut contenir des caractères spéciaux et d’autres contenus non textuels. Par conséquent, l’encodage du SVG en Base64 évite les problèmes potentiels liés à l’intégration du SVG dans XML et à l’intégrité de la structure XML globale. Cela garantit que les données d’image restent en sécurité et ne sont pas gâchées lorsque vous les déplacez ou les stockez.


Comment convertir SVG en XML en Python

Afin de convertir SVG en XML, nous utilisons l’API Aspose.SVG for Python via .NET , qui est une API de manipulation de documents riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme Python. Nous considérons l’exemple de l’encodage SVG en Base64 et de l’intégration d’une chaîne Base64 dans un document XML:


Code Python pour convertir SVG en XML

import base64
import os
from aspose.svg import *
from xml.etree.ElementTree import *

# Create a function to convert SVG to XML with Base64-encoded SVG data
def convert_svg_to_xml(svg_path, xml_path):
    # Load an SVG document
    document = SVGDocument(svg_path)

    # Temporary file path to save the SVG content
    temp_svg_path = "temp_output.svg"

    try:
        # Save the SVG content to a temporary file
        document.save(temp_svg_path)

        # Read the content from the temporary file
        with open(temp_svg_path, "r", encoding="utf-8") as svg_file:
            svg_content = svg_file.read()

        # Encode the SVG content in Base64
        encoded_svg = base64.b64encode(svg_content.encode("utf-8")).decode("utf-8")

        # Create XML structure
        root = Element("root")
        image = SubElement(root, "image", mime="image/svg+xml")
        image.text = encoded_svg

        # Write the XML to the file
        tree = ElementTree(root)
        tree.write(xml_path, encoding="utf-8", xml_declaration=True)

    finally:
        # Clean up the temporary file
        if os.path.exists(temp_svg_path):
            os.remove(temp_svg_path)

# Example usage
input_svg = "image.svg"
output_xml = "image-base64.xml"

convert_svg_to_xml(input_svg, output_xml)



Étapes pour convertir SVG en XML en Python

  1. Utilisez la classe SVGDocument pour charger le contenu SVG à partir du chemin de fichier spécifié.
  2. Enregistrez le document SVG chargé dans un fichier temporaire. Cette étape facilite la lecture du contenu SVG sous forme de chaîne pour l’encodage.
  3. Ouvrez le fichier SVG temporaire et lisez son contenu dans une chaîne. Convertissez cette chaîne en codage Base64 pour la préparer à l’intégration dans XML.
  4. Créez un objet XML qui inclut le type MIME et les données SVG codées en Base64. Structurez le XML selon vos besoins, avec des champs appropriés pour les données d’image.
  5. Enregistrez l’objet XML construit dans le chemin de fichier spécifié. Ce fichier XML contiendra désormais les données SVG codées en Base64.
  6. Supprimez le fichier SVG temporaire pour vous assurer qu’aucun fichier inutile n’est laissé sur le système.

L’objet XML inclut généralement le type MIME d’une image et les données codées, comme suit:

Code XML avec image SVG Base64 intégrée

<?xml version="1.0" encoding="UTF-8"?>
<root>
<image mime = "image/svg+xml">base64_string...</image>
</root>



Encodeurs Base64 en ligne

Aspose.SVG propose des applications en ligne gratuites pour encoder et décoder des données binaires :

  • Encodeurs Base64 sont un ensemble d’outils qui vous permettent d’encoder des données binaires dans différents formats de sortie : Plain Base64, JSON, XML, URI ou CSS.
  • Décodeur Image Base64 convertit un URI de données contenant une chaîne Base64 en une image en collant une chaîne URI dans le contrôle d’entrée.

Nos applications basées sur un navigateur fonctionnent sur toutes les plateformes, y compris Windows, Linux, Mac OS, Android et iOS. Aucun enregistrement, plugin ou installation de logiciel requis pour vous. Commencez à utiliser nos outils d’encodage/décodage Base64 en ligne de manière sûre, sécurisée et simple !

FAQ

1. Comment puis-je convertir SVG en XML?

Aspose.SVG vous permet de convertir SVG en XML de n’importe quelle manière, en ligne ou par programmation. Par exemple, vous pouvez encoder SVG en temps réel à l’aide de l’Encodeur en ligne SVG qui convertit vos fichiers rapidement et avec une haute qualité. Téléchargez, encodez SVG et obtenez le résultat en quelques secondes! D’autre part, vous pouvez utiliser Aspose.SVG for Python via .NET pour convertir SVG en XML par programmation.

2. Pourquoi encoder les fichiers SVG?

Historiquement, de nombreux formats de transfert et de stockage de données, tels que HTML, XML et e-mail, reposent sur du texte plutôt que sur du code binaire. Lorsque des données binaires, par exemple, dans des fichiers SVG doivent être intégrées dans ces formats textuels, l’encodage Base64 devient nécessaire. L’encodage des fichiers SVG en Base64 leur permet d’être intégrés en toute sécurité dans les schémas XML, JSON, CSS et URI sans modification pendant le transport. Cette approche simplifie l’intégration, améliore la portabilité et améliore les temps de chargement en réduisant les requêtes HTTP.

3. Qu'est-ce que l'encodage Base64?

Le codage Base64 est une méthode de conversion de données binaires en format texte à l’aide d’un ensemble de 64 caractères ASCII qui peuvent être utilisés en toute sécurité dans des formats textuels tels que HTML, XML ou e-mail. Ce codage garantit que les données binaires, telles que les images ou les fichiers, peuvent être intégrées, transmises ou stockées dans des systèmes qui ne gèrent que du texte sans corruption de données.

4. Le codage Base64 peut-il affecter la qualité d'une image SVG?

Non, le codage Base64 n’affecte pas la qualité de l’image SVG. Le codage Base64 est un moyen de représenter des données binaires sous forme de texte, en préservant la qualité d’origine du fichier SVG. Le processus de codage convertit simplement le fichier SVG en un format texte adapté à l’intégration dans divers formats de texte tels que JSON, XML ou CSS.

Premiers pas avec l'API Python

Si vous souhaitez développer des graphiques vectoriels évolutifs et leurs applications, installez notre Aspose.SVG for Python via .NET API flexible et rapide. pip est le moyen le plus simple de télécharger et d’installer Aspose.SVG for Python via .NET API. Pour ce faire, exécutez la commande suivante:

pip install aspose-svg-net

Pour plus de détails sur l’installation de la bibliothèque Python et la configuration système requise, veuillez vous référer à la Documentation Aspose.SVG.

Autres encodeurs Base64 pris en charge

Vous pouvez convertir SVG en chaîne Base64 et l'enregistrer au format JSON, XML et CSS:

Image to Base64 (Binary-to-text encoding)
SVG to JSON (JavaScript Object Notation)
SVG to XML (Extensible Markup Language)
SVG to CSS (Cascading Style Sheets)