Konversi SVG ke XML dengan Pengkodean Base64

XML adalah format berbasis teks, dan meskipun bagus untuk menyusun data, XML tidak menangani data biner (seperti gambar) dengan baik. SVG adalah format berbasis XML, jadi sepertinya tidak perlu menyandikannya ke Base64 dan menyimpannya sebagai XML. Namun, SVG dapat berisi karakter khusus dan konten non-teks lainnya. Oleh karena itu, pengkodean SVG di Base64 menghindari potensi masalah dengan penyematan SVG dalam XML dan integritas struktur XML secara keseluruhan. Hal ini memastikan data gambar tetap aman dan tidak berantakan saat Anda memindahkan atau menyimpannya.


Bagaimana mengkonversi SVG ke XML dengan Python

Untuk mengonversi SVG ke XML, kami menggunakan API Aspose.SVG for Python via .NET , yang merupakan API manipulasi dokumen yang kaya fitur, kuat, dan mudah digunakan untuk platform Python. Kami mempertimbangkan contoh pengkodean SVG ke Base64 dan menyematkan string Base64 ke dalam dokumen XML:


Kode Python untuk mengubah SVG ke XML

import base64
import os
import aspose.svg as assvg
import xml.etree.ElementTree as et

# 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 using Aspose.SVG
    doc = assvg.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
        doc.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 SVG to Base64
        encoded_svg = base64.b64encode(svg_content.encode("utf-8")).decode("utf-8")

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

        # Write the XML to the file
        tree = et.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)



Langkah-langkah Mengonversi SVG ke XML dengan Python

  1. Gunakan kelas SVGDocument untuk memuat konten SVG dari jalur file yang ditentukan.
  2. Simpan dokumen SVG yang dimuat ke file sementara. Langkah ini memfasilitasi pembacaan konten SVG sebagai string untuk pengkodean.
  3. Buka file SVG sementara dan baca isinya menjadi sebuah string. Ubah string ini menjadi pengkodean Base64 untuk mempersiapkannya untuk disematkan dalam XML.
  4. Buat objek XML yang menyertakan tipe MIME dan data SVG yang dikodekan Base64. Susun XML sesuai kebutuhan, dengan kolom yang sesuai untuk data gambar.
  5. Simpan objek XML yang dibuat ke jalur file yang ditentukan. File XML ini sekarang akan berisi data SVG yang dikodekan Base64.
  6. Hapus file SVG sementara untuk memastikan tidak ada file yang tidak diperlukan yang tersisa di sistem.

Objek XML biasanya menyertakan tipe gambar MIME dan data yang dikodekan, seperti:

Kode XML dengan gambar SVG Base64 yang tertanam

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



Encoder Base64 Online

Aspose.SVG menawarkan aplikasi online gratis untuk encodind dan decoding data biner:

  • Encoder Base64 adalah seperangkat alat yang memungkinkan Anda mengenkode data biner dalam berbagai format keluaran: Base64 Biasa, JSON, XML, URI, atau CSS.
  • Gambar Base64 Decoder mengonversi URI data yang berisi string Base64 ke gambar dengan menempelkan string URI di kontrol masukan.

Aplikasi berbasis browser kami berfungsi dari semua platform, termasuk Windows, Linux, Mac OS, Android, dan iOS. Tidak diperlukan pendaftaran, plugin, atau instalasi perangkat lunak untuk Anda. Mulailah menggunakan alat encoding/decoding Base64 online kami dengan aman, aman, dan mudah!

FAQ

1. Bagaimana cara mengonversi SVG ke XML?

Aspose.SVG memungkinkan Anda mengonversi SVG ke XML dengan cara apa pun – daring atau terprogram. Misalnya, Anda dapat mengodekan SVG secara real-time menggunakan SVG Encoder Online yang mengonversi file Anda dengan cepat dan berkualitas tinggi. Unggah, enodekan SVG dan dapatkan hasilnya dalam beberapa detik! Di sisi lain, Anda dapat menggunakan Aspose.SVG for Python via .NET API untuk mengonversi SVG menjadi XML secara terprogram.

2. Mengapa mengodekan File SVG?

Secara historis, banyak format penyimpanan dan transfer data, seperti HTML, XML, dan email, mengandalkan teks daripada kode biner. Ketika data biner, misalnya, dalam file SVG perlu disematkan dalam format berbasis teks ini, dan pengodean Base64 menjadi perlu. Pengodean file SVG ke Base64 memungkinkannya untuk disematkan dengan aman dalam skema XML, JSON, CSS, dan URI tanpa modifikasi selama pengangkutan. Pendekatan ini menyederhanakan integrasi, meningkatkan portabilitas, dan mempercepat waktu muat dengan mengurangi permintaan HTTP.

3. Apa itu pengodean Base64?

Pengodean Base64 adalah metode untuk mengubah data biner menjadi format teks menggunakan sekumpulan 64 karakter ASCII yang aman untuk digunakan dalam format berbasis teks seperti HTML, XML, atau email. Pengodean ini memastikan bahwa data biner, seperti gambar atau file, dapat disematkan, dikirimkan, atau disimpan dalam sistem yang hanya menangani teks tanpa kerusakan data. Base64 umumnya digunakan untuk menyematkan gambar di halaman web, mengirim file melalui email, dan menyimpan data dalam format berbasis teks.

4. Dapatkah pengodean Base64 memengaruhi kualitas gambar SVG?

Tidak, pengodean Base64 tidak memengaruhi kualitas gambar SVG. Pengodean Base64 adalah cara untuk merepresentasikan data biner sebagai teks, dengan mempertahankan kualitas asli file SVG. Proses pengodean hanya mengubah file SVG menjadi format teks yang sesuai untuk disematkan dalam berbagai format teks seperti JSON, XML, atau CSS.

Memulai dengan API Python

Jika Anda ingin mengembangkan grafik vektor yang dapat diskalakan dan aplikasinya, instal Aspose.SVG for Python via .NET API kami yang fleksibel dan berkecepatan tinggi. pip adalah cara termudah untuk mengunduh dan menginstal Aspose.SVG for Python via .NET API. Untuk melakukannya, jalankan perintah berikut:

pip install aspose-svg-net

Untuk detail selengkapnya tentang instalasi pustaka Python dan persyaratan sistem, silakan merujuk ke Dokumentasi Aspose.SVG.

Encoder Base64 Lainnya yang Didukung

Anda dapat mengonversi string SVG ke Base64 dan menyimpannya sebagai JSON, XML, dan 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)