Convert SVG to JSON with Base64 Encoding

When dealing with vector graphics like SVG, converting these files into formats that can be easily embedded, transmitted, or stored is often required. One practical approach is to convert SVG files to JSON format using Base64 encoding. Such conversion is helpful in embedding vector graphics directly into web pages or applications without extra HTTP requests. This simplifies data transfer via APIs and configuration files, improves performance by reducing network load, and makes dynamic UI generation more efficient.


How to convert SVG to JSON in Python

In order to convert SVG to JSON, we use Aspose.SVG for Python via .NET API, which is a feature-rich, powerful, easy-to-use document manipulation API for the Python platform. We consider the example of SVG to Base64 encoding and embedding Base64 string into JSON document:


Python code to convert SVG to JSON

import base64
import json
import os
from aspose.svg import *

# Create a function to convert SVG to JSON with Base64-encoded SVG data
def convert_svg_to_json(svg_path, json_path):
    # Load an SVG document
    document = SVGDocument(svg_path)

    # Save the SVG content to a temporary file
    temp_svg_path = "temp_output.svg"
    document.save(temp_svg_path)

    try:
        # 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 JSON structure
        json_data = {
            "image": {
                "mime": "image/svg+xml",
                "data": encoded_svg
            }
        }

        # Write the JSON to the file
        with open(json_path, "w", encoding="utf-8") as json_file:
            json.dump(json_data, json_file, indent=4)

    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_json = "image-base64.json"

convert_svg_to_json(input_svg, output_json)



Steps to Convert SVG to JSON in Python

  1. Use the SVGDocument class to load the SVG content from the specified file path.
  2. Save the loaded SVG document to a temporary file. This step facilitates reading the SVG content as a string for encoding.
  3. Open the temporary SVG file and read its content into a string. Convert this string into Base64 encoding to prepare it for embedding in JSON.
  4. Create a JSON object that includes the MIME type and the Base64-encoded SVG data. Structure the JSON as required, with appropriate fields for the image data.
  5. Save the constructed JSON object to the specified file path. This JSON file will now contain the Base64-encoded SVG data.
  6. Remove the temporary SVG file to ensure no unnecessary files are left on the system.

The JSON object typically includes the MIME type of an image and encoded data, like so:

JSON code with embedded Base64 SVG image

{
  "image": {
    "mime": "image/svg",
    "data": "base64_string..."
  }
}



Online Base64 Encoders

Aspose.SVG offers free online applications for encodind and decoding binary data:

  • Base64 Encoders are a set of tools that allow you to encode binary data in various output formats: Plain Base64, JSON, XML, URI, or CSS.
  • Image Base64 Decoder converts a data URI containing a Base64 string to an image by pasting a URI string in the input control.

Our browser-based applications work from all platforms, including Windows, Linux, Mac OS, Android and iOS. No registration, plugin or software installation required for you. Start using our online Base64 encoding/decoding tools safely, secure, and easy way!

FAQ

1. How can I convert SVG to JSON?

Aspose.SVG allows you to convert SVG to JSON in any way – online or programmatically. For example, you can encode SVG in real-time using Online SVG Encoder that converts your files quickly and with high quality. Upload, encode SVG and get the result in a few seconds! On the other hand, you can use Aspose.SVG for Python via .NET API to convert SVG to JSON programmatically.

2. Why encode SVG Files?

Historically, many data transfer and storage formats, such as HTML, XML, and email, rely on text rather than binary code. When binary data, for example, in SVG files need to be embedded in these text-based formats, and Base64 encoding becomes necessary. Encoding SVG files to Base64 allows them to be safely embedded within XML, JSON, CSS, and URI schemes without modification during transport. This approach simplifies integration, enhances portability, and improves load times by reducing HTTP requests.

3. What is Base64 encoding?

Base64 encoding is a method for converting binary data into a text format using a set of 64 ASCII characters that are safe for use in text-based formats like HTML, XML, or email. This encoding ensures that binary data, such as images or files, can be embedded, transmitted, or stored in systems that only handle text without data corruption. Base64 is commonly used for embedding images in web pages, sending files via email, and storing data in text-based formats.

4. Can Base64 encoding affect the quality of an SVG image?

No, Base64 encoding does not affect the quality of the SVG image. Base64 encoding is a way to represent binary data as text, preserving the SVG file’s original quality. The encoding process simply converts the SVG file into a text format suitable for embedding in various text formats such as JSON, XML, or CSS.

Get Started with Python API

If you want to develop scalable vector graphics and their applications, install our flexible, high-speed Aspose.SVG for Python via .NET API. pip is the easiest way to download and install Aspose.SVG for Python via .NET API. To do this, run the following command:

pip install aspose-svg-net

For more details about Python library installation and system requirements, please refer to Aspose.SVG Documentation.

Other Supported Base64 Encoders

You can convert SVG to Base64 string and save it as JSON, XML, and 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)