Base64 인코딩을 사용하여 SVG를 XML로 변환

XML은 텍스트 기반 형식이며 데이터 구조화에는 탁월하지만 이진 데이터(예: 이미지)를 잘 처리하지 못합니다. SVG는 XML 기반 형식이므로 Base64로 인코딩하여 XML로 저장하는 것이 불필요해 보일 수 있습니다. 그러나 SVG에는 특수 문자 및 기타 텍스트가 아닌 콘텐츠가 포함될 수 있습니다. 따라서 Base64에서 SVG를 인코딩하면 XML에 SVG를 삽입하고 전체 XML 구조의 무결성과 관련된 잠재적인 문제를 피할 수 있습니다. 이렇게 하면 이미지 데이터가 안전하게 유지되고 이동하거나 저장할 때 엉망이 되지 않습니다.


Python에서 SVG를 XML로 변환하는 방법

SVG를 XML로 변환하기 위해 우리는 Python 플랫폼을 위한 기능이 풍부하고 강력하며 사용하기 쉬운 문서 조작 API인 Aspose.SVG for Python via .NET API를 사용합니다. Base64 문자열을 XML 문서에 포함하고 Base64로 인코딩하는 SVG의 예를 고려합니다.


SVG를 XML로 변환하는 Python 코드

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)



Python에서 SVG를 XML로 변환하는 단계

  1. SVGDocument 클래스를 사용하여 지정된 파일 경로에서 SVG 콘텐츠를 로드합니다.
  2. 로드된 SVG 문서를 임시 파일에 저장합니다. 이 단계를 통해 SVG 콘텐츠를 인코딩용 문자열로 쉽게 읽을 수 있습니다.
  3. 임시 SVG 파일을 열고 해당 내용을 문자열로 읽어옵니다. 이 문자열을 Base64 인코딩으로 변환하여 XML에 포함할 수 있도록 준비합니다.
  4. MIME 유형과 Base64로 인코딩된 SVG 데이터를 포함하는 XML 객체를 생성합니다. 이미지 데이터에 대한 적절한 필드를 사용하여 필요에 따라 XML을 구성합니다.
  5. 생성된 XML 객체를 지정된 파일 경로에 저장합니다. 이제 이 XML 파일에는 Base64로 인코딩된 SVG 데이터가 포함됩니다.
  6. 불필요한 파일이 시스템에 남아 있지 않도록 임시 SVG 파일을 제거합니다.

XML 객체에는 일반적으로 다음과 같이 이미지의 MIME 유형과 인코딩된 데이터가 포함됩니다.

Base64 SVG 이미지가 내장된 XML 코드

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



온라인 Base64 인코더

Aspose.SVG는 바이너리 데이터 인코딩 및 디코딩을 위한 무료 온라인 애플리케이션을 제공합니다.

  • Base64 인코더 는 일반 Base64, JSON, XML, URI 또는 ​​CSS와 같은 다양한 출력 형식으로 바이너리 데이터를 인코딩할 수 있는 도구 세트입니다.
  • 이미지 Base64 디코더 는 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 인코딩은 HTML, XML 또는 이메일과 같은 텍스트 기반 형식에서 안전하게 사용할 수 있는 64개의 ASCII 문자 집합을 사용하여 이진 데이터를 텍스트 형식으로 변환하는 방법입니다. 이 인코딩은 이미지나 파일과 같은 이진 데이터를 데이터 손상 없이 텍스트만 처리하는 시스템에 임베드, 전송 또는 저장할 수 있도록 합니다. Base64는 일반적으로 웹 페이지에 이미지를 임베드하고, 이메일을 통해 파일을 보내고, 텍스트 기반 형식으로 데이터를 저장하는 데 사용됩니다.

4. Base64 인코딩이 SVG 이미지의 품질에 영향을 줄 수 있습니까?

아니요, Base64 인코딩은 SVG 이미지의 품질에 영향을 미치지 않습니다. Base64 인코딩은 이진 데이터를 텍스트로 표현하여 SVG 파일의 원래 품질을 유지하는 방법입니다. 인코딩 프로세스는 단순히 SVG 파일을 JSON, XML 또는 CSS와 같은 다양한 텍스트 형식에 임베드하기에 적합한 텍스트 형식으로 변환합니다.

Python API 시작하기

확장 가능한 벡터 그래픽과 해당 애플리케이션을 개발하려면 유연한 고속 Aspose.SVG for Python via .NET API를 설치하세요. pip은 Aspose.SVG for Python via .NET API를 다운로드하고 설치하는 가장 쉬운 방법입니다. 이렇게 하려면 다음 명령을 실행하십시오.

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)