在 Python 中将图像编码为 Base64

将图像转换为 Base64 编码的字符串。支持SVG、JPG、JPEG、PNG、BMP、GIF、TIFF、ICO、IFIF、WEBP等图像格式。

Base64 编码

Base64 是一种将二进制数据转换为 ASCII 文本的编码方案,通常用于通过 Internet 传输数据。当图像转换为 Base64 时,结果是一串拉丁字母、数字和两个字符 – “+”和“/”。浏览器可以毫无问题地解释此编码数据。换句话说,Base64 是一种二进制到文本的编码,可以嵌入各种格式,例如 JSON、XML、数据 URI 或 CSS。

Base64 广泛用于将图像或其他二进制资源直接嵌入到 HTML 或 CSS 文件中。由于图像已包含在 HTML 文档中,因此无需额外的 Web 请求。然而,Base64 最适合小图像;大型 Base64 编码图像会使 HTML 膨胀,从而导致性能下降。还应该指出的是,Google 永远不会索引 Base64 图像,因为它不会出现在图像搜索中。


在线将图像转换为 Base64

使用 Aspose.SVG for .NET API 实时编码图像! 请从本地文件系统加载图像,您将立即获得数据 URI、Base64 图像源和 Base64 CSS 背景源的结果。 支持JPG、JPEG、PJP、PJPEG、PNG、BMP、XBM、GIF、TIFF、ICO、IFIF、WEBP等图片格式。



在 Python 中将图像转换为 Base64

本文讨论如何通过 .NET API 使用 Aspose.SVG for Python 将图像文件编码为 Base64 字符串。以下 Python 示例演示了如何将 SVG 图像转换为 Base64 字符串并将其嵌入到 SVG 文件中。

将 SVG 图像转换为 Base64 的 Python 代码

import base64
from aspose.svg import SVGDocument


document_path = "image.svg"

# Open an SVG image
with open(document_path, "rb") as file:
    bytes_data = file.read()

# Initialize an SVGDocument object
document = SVGDocument()

# Create an image element
img_element = document.create_element_ns("http://www.w3.org/2000/svg", "image")

# Convert SVG image to Base64 and set the href attribute
encoded_image = f"data:image/svg+xml;charset=utf-8;base64,{base64.b64encode(bytes_data).decode('utf-8')}"
img_element.set_attribute("href", encoded_image)

# Add the image element to the SVG document
document.document_element.append_child(img_element)

# Save the SVG document
document.save("image-base64.svg")

生成的 image-base64.svg 文件的片段如下所示。 Base64 字符串已被剪切,以免弄乱 SVG 代码示例。具体来说,将 Base64 图像嵌入为 URI 数据的格式如下:

data:[<mime type>][;charset=<charset>][;base64],<encoded data>

用于嵌入 Base64 图像的 SVG 代码

<svg xmlns="http://www.w3.org/2000/svg">
	<image href="data:image/svg+xml;charset=utf-8;base64,PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ..." alt="Alt text for the image"/>
</svg>



在 HTML 中嵌入 Base64 图像

为什么要将图像转换为 Base64?通过将图像数据作为数据 URI 插入,可以使用<img>标签将 Base64 编码的图像直接嵌入到 HTML 中。此方法减少了浏览器加载网页所需的 HTTP 请求数量,从而提高了性能。以下代码片段展示了如何在 HTML 中嵌入 Base64 图像。

用于嵌入 Base64 图像作为数据 URI 的 HTML 代码

<body>
    <div>
        <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ..." alt="Alt text for the image">
    </div>
</body>

数据 URI 由用逗号分隔的两部分组成。第一部分指定 Base64 编码图像的数据 URI 方案标头,第二部分定义 Base64 编码图像字符串本身:

  1. data:image/svg+xml;base64,是数据 URI 方案标头。
  2. PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ... 是编码后的 Base64 数据。



在 CSS 代码中嵌入 Base64 图像

减少图像 HTTP 请求数量的另一种方法是使用 CSSbackground-image属性。此属性将图像设置为元素的背景,并且您可以将每个图像指定为 URL 或图像数据 URI。通过 URL,浏览器发送 HTTP 请求来获取外部图像,但通过嵌入作为数据 URI 的 Base64 图像,图像直接包含在文档中。这意味着浏览器不必发出任何额外的 HTTP 请求,从而加快了页面加载时间。

用于嵌入 Base64 图像作为数据 URI 的 CSS 代码

body {
    background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ...");
}



在 XML 中嵌入 Base64 图像

将图像编码为 Base64 以嵌入 XML 中,允许图像直接包含在这种格式中,从而简化了集成并增强了可移植性,从而减少了对外部文件引用的需要。

带有嵌入 Base64 SVG 图像的 XML 代码

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



在 JSON 中嵌入 Base64 图像

将图像转换为 Base64 并将其另存为 JSON 对于嵌入网页或应用程序非常有用,无需额外的 HTTP 请求。

嵌入 Base64 图像的 JSON 代码

{
  "image": {
    "mime": "image/png",
    "data": "PHN2ZyB3aWR0aD0iNTAwIiBoZWlnaHQ..."
  }
}

在线 Base64 编码器

在线 Base64 编码器 将 SVG 文档或图像文件的内容转换为使用 ASCII 字符编码的等效字符串表示形式。它们还提供了数据 URI、JSON、XML 等的示例。编码工具可帮助您避免导致网站内容或电子邮件无法读取的各种数据编码问题。 Base64 编码器安全、易于使用且完全免费。它们可以在任何浏览器和任何操作系统上运行。立即免费将图像转换为 Base64!

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 – 支持 JPG、PNG、BMP、GIF、TIFF、ICO 和 SVG 格式:

  • PNG to Base64
  • JPG to Base64
  • PNG to XML
  • JPG to XML