Перетворення SVG на XML із кодуванням Base64

XML – це текстовий формат, і хоча він чудово підходить для структурування даних, він погано обробляє двійкові дані (наприклад, зображення). SVG – це формат на основі XML, тому може здатися непотрібним кодувати його в Base64 і зберігати як XML. Однак SVG може містити спеціальні символи та інший нетекстовий вміст. Таким чином, кодування SVG у Base64 дозволяє уникнути потенційних проблем із вбудовуванням SVG у XML і цілісністю загальної структури XML. Це гарантує, що дані зображення залишаться в безпеці та не зіпсуються, коли ви їх переміщуєте або зберігаєте.


Як конвертувати SVG у XML на Python

Щоб конвертувати SVG у XML, ми використовуємо Aspose.SVG for Python via .NET API, який є багатофункціональним, потужним і простим у використанні API для обробки документів для платформи Python. Розглянемо приклад кодування SVG в Base64 і вбудовування рядка Base64 в XML-документ:


Код Python для перетворення SVG у 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)



Кроки для перетворення SVG на XML на Python

  1. Використовуйте клас SVGDocument , щоб завантажити вміст SVG із указаного шляху до файлу.
  2. Збережіть завантажений документ SVG у тимчасовий файл. Цей крок полегшує читання вмісту SVG як рядка для кодування.
  3. Відкрийте тимчасовий файл SVG і зчитайте його вміст у рядок. Перетворіть цей рядок у кодування Base64, щоб підготувати його для вбудовування в XML.
  4. Створіть об’єкт XML, який містить тип MIME та дані SVG у кодуванні Base64. Структуруйте XML відповідно до потреб із відповідними полями для даних зображення.
  5. Збережіть створений XML-об’єкт у вказаний шлях до файлу. Цей файл XML тепер міститиме дані SVG у кодуванні Base64.
  6. Видаліть тимчасовий файл SVG, щоб переконатися, що в системі не залишилося непотрібних файлів.

Об’єкт XML зазвичай включає тип MIME зображення та закодовані дані, наприклад:

Код XML із вбудованим зображенням Base64 SVG

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



Онлайн кодери Base64

Aspose.SVG пропонує безкоштовні онлайн-застосунки для кодування та декодування двійкових даних:

  • Base64 Encoders – це набір інструментів, які дозволяють кодувати двійкові дані в різних вихідних форматах: Plain Base64, JSON, XML, URI або CSS.
  • Image Base64 Decoder перетворює URI даних, що містить рядок Base64, на зображення, вставляючи рядок URI в елемент керування введенням.

Наші браузерні застосунки працюють на всіх платформах, включаючи Windows, Linux, Mac OS, Android та iOS. Вам не потрібна реєстрація, плагін або встановлення програмного забезпечення. Почніть використовувати наші онлайн-інструменти кодування/декодування Base64 безпечно, надійно та просто!

FAQ

1. Як перетворити SVG на XML?

Aspose.SVG дозволяє конвертувати SVG у XML будь-яким способом – онлайн чи програмно. Наприклад, ви можете кодувати SVG у реальному часі за допомогою онлайн-застосунку Кодувати SVG , який швидко та високоякісно перетворює ваші файли. Завантажте, закодуйте SVG і отримайте результат за кілька секунд! З іншого боку, ви можете використовувати Aspose.SVG for Python via .NET API, щоб програмно перетворити SVG на XML.

2. Навіщо кодувати файли SVG?

Історично склалося так, що багато форматів передачі та зберігання даних, наприклад HTML, XML і електронна пошта, покладаються на текст, а не на двійковий код. Коли двійкові дані, наприклад у файлах SVG, потрібно вставити в ці текстові формати, необхідним стає кодування Base64. Кодування файлів SVG у Base64 дозволяє безпечно вбудовувати їх у схеми XML, JSON, CSS та URI без змін під час транспортування. Цей підхід спрощує інтеграцію, покращує портативність і пришвидчує час завантаження за рахунок зменшення запитів HTTP.

3. Що таке кодування Base64?

Кодування Base64 – це метод перетворення двійкових даних у текстовий формат за допомогою набору з 64 символів ASCII, безпечних для використання в текстових форматах, таких як HTML, XML або електронна пошта. Це кодування гарантує, що двійкові дані можуть бути вбудовані, передані або збережені в системах, які обробляють лише текст без пошкодження даних.

4. Чи може кодування Base64 впливати на якість зображення SVG?

Ні, кодування Base64 не впливає на якість зображення. Кодування Base64 – це спосіб представлення двійкових даних у вигляді тексту, який зберігає оригінальну якість файлу SVG. Процес кодування просто перетворює файл SVG у текстовий формат, придатний для вбудовування в різні текстові формати, такі як JSON, XML або CSS.

Початок роботи з Python API

Якщо ви хочете розробляти масштабовану векторну графіку та її додатки, встановіть наш гнучкий, високошвидкісний Aspose.SVG for Python via .NET API. pip – це найпростіший спосіб завантажити та встановити Aspose.SVG for Python via .NET. Для цього виконайте таку команду:

pip install aspose-svg-net

Додаткову інформацію про встановлення бібліотеки Python і системні вимоги ви знайдете в документації Aspose.SVG.

Інші підтримувані кодери Base64

Ви можете конвертувати SVG у рядок Base64 і зберігати його як JSON, XML і 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)