在 Python 中使用 BASE64 编码图像文件

在当今快节奏的信息交换世界中,数据需要快速高效地传输。以字符串形式对图像进行编码是我们将图像从一个网络传输到另一个网络的最常见方法之一。

通过将图像转换为字符串,可以轻松实现图像压缩。当存在大量图像时,转换有助于减少带宽并轻松传输和快速处理它们。

它还用于在线存储图像和其他文件,例如视频、音频文件。

Base64编码简介

在 Python 中使用 Base64 模块对图像文件进行编码可以轻松完成。要对图像进行编码,首先导入 base64 模块。然后,以二进制模式打开图像文件并读取其内容。使用base64.b64encode()函数将图像内容转换为Base64字符串。最后,打印编码的字符串或根据需要使用“utf-8”对其进行解码。Base64 编码对于通过 Internet 或 API 高效、安全地传输图像文件非常有用,但它有一些限制,例如最适合处理小尺寸图像。

编码是指将可读数据转换为编码形式的过程,使其变得不那么容易阅读。它对于在网络之间或通过互联网安全传输数据至关重要,因为它将可读数据转换为不易破译的编码形式。此过程不仅增强了安全性,还可以防止传输过程中的数据损坏,并减少带宽以提高传输速度。计算机网络中的编码系统不止一种,例如base8、base16、base64和base256。

Base64 是一种将字节转换为 ASCII 字符的编码系统。该系统包含英语词典的所有大写和小写字母、“+”和“/”字符以及从0(零)到9(九)的数字。

Python 中的 base64 模块可以将字符串、文本文件和媒体文件(例如图像、视频或音频文件)转换为 Base64 字符。因此,使用这个内置模块,Python 中的图像编码变得非常简单。

Python 提供了大量的内置函数,可以在一般层面上解决大多数问题。这就是 Python 从其他语言中脱颖而出的原因。除了具有极其简单的语法之外,Python 的流行还归因于它的灵活性和互联网上提供的大量文档。

类似:在 Python 中解码 Base64 数据。

将图像转换为 Base64 字符串的优点

图片转换为base64字符串的原因如下:

  • 为了更轻松地通过互联网传输图像和其他文件。
  • 用于减少图像文件的带宽以提高文件传输速度。
  • 在 API 中安全地共享图像。
  • 以 Base64 字符串编码的图像可以在 API 的服务器端进行解码,以便于使用。
  • 在不支持文件上传的应用程序中,将图像转换为base64字符串很有用。
  • 图像也可以转换为 8 位字符,但不支持通过电子邮件传输,因此在这种情况下将图像转换为 Base64 字符会派上用场。

将图像转换为 Base64 字符串的缺点

将图像转换为 Base64 字符串也有一些缺点。其中一些如下:

  • 它仅适用于小尺寸图像,事实上,适用于非常小的图像。
  • 转换后的 Base64 字符串太长,而 Python(主要是一种解释性语言)需要时间来生成该字符串。
  • 这种编码实践仅在存在大量非常非常小的图像时才有效。

为 Base64 编码准备 Python 环境

确保您已更新为最新版本的 python。当您在系统中安装 python 时,默认情况下会安装此模块。但为了确保这一点,您可以通过从命令提示符运行以下命令来检查系统中已安装的 Python 模块的列表。

pip list
已安装模块的点列表

这将列出系统中所有已安装的软件包。在最近的更新中,base64 模块已升级为pybase64,这是用于编码/解码目的的先前模块的免费、更快版本。如果本地系统上的模块列表中没有 base64 模块,请不要担心,请在管理员模式下从命令提示符运行以下命令以避免 PATH 冲突。

pip install pybase64
安装 Pybase64

请查看:如何在 Python 中将图像转换为 Numpy 数组。

在 Python 中使用 Base64 对图像进行编码

下面给出了以 Base64 字符对图像进行编码的代码:

#importing required image
import base64
with open("required image.jpg", "rb") as imagefile:
    convert = base64.b64encode(imagefile.read())
print(convert.decode('utf-8'))

输出将会很大,因为我使用了下面给出的图像。您可以使用任何您想要的图像。

所需图片

警告:由于输出很大,您的编辑器可能会降低系统速度,因此建议使用小图像。这是该方法最常见的缺点之一。如果您使用 IDLE Python,那么您可能会在 shell 中收到如下所示的警告。

空闲 shell 中的警告

您可以单击该警告并将输出复制并粘贴到记事本中。但在某些编辑器中,您实际上可以看到巨大的输出,如下所示:

代码和输出

结论。

在本文中,我们了解了 Base64 编码系统的基础知识,并了解了它的优点和缺点。使用 pybase64 模块或简单地使用 base64 模块可以轻松地将图像转换为 python 中的 base64 字符。您还可以使用此模块转换其他文件,例如视频和音频。现在您已经了解了如何使用 Base64 对图像进行编码,请考虑探索其他编码技术,例如 Base8、Base16 和 Base256。这些方法在速度、效率和安全性方面如何比较?