📌  相关文章
📜  Python - 将图像转换为字符串,反之亦然(1)

📅  最后修改于: 2023-12-03 15:33:56.944000             🧑  作者: Mango

Python - 将图像转换为字符串,反之亦然

在编程中,有时候我们需要将图像转换为字符串或将字符串转换为图像。这在很多场景下都是很有用的,例如将图像嵌入到文本中或者将文本转化为图像验证码等等。

下面就来介绍一下 Python 中如何实现图像字符串互相转换。

将图像转换为字符串

将图像转换为字符串的过程,其实就是将图像中的像素点信息转化为字符串。而这一任务可以通过 Python 中的 Pillow 库来实现。

from PIL import Image
import base64

# 读入图像文件
with open("image.jpg", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())
    print(encoded_string.decode('utf-8'))

以上代码中,我们首先导入了 Pillow 库和 base64 库。然后,将图像文件以二进制的格式打开,并用 base64 编码将其转换为字符串。最后,我们将得到的字符串打印出来。

将字符串转换为图像

与将图像转换为字符串的过程相反,我们可以通过读入 base64 编码的字符串,将其还原为图像。

import base64
from PIL import Image
from io import BytesIO

# 读入字符串
with open("encoded_image.txt", "r") as image_file:
    encoded_string = image_file.read()

# 将字符串转换为图像
decoded_image_data = base64.b64decode(encoded_string)
img = Image.open(BytesIO(decoded_image_data))
img.show()

以上代码中,我们首先读入了从上一部分中得到的字符串。然后,将字符串进行 base64 解码并用 BytesIO 将其封装为字节流,最后使用 Pillow 库的 Image 对象打开字节流中的图像数据并显示出来。

在执行以上代码时,我们需要将图像转换为字符串得到的结果保存到文件 encoded_image.txt 中。在文件中的字符串应该是如下形式的:

/9j/4AAQSkZJRgABAQEAZABkAAD/4QCCRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAA...

结语

以上就是 Python 中将图像转换为字符串以及将字符串转换为图像的方法。通过这两个方法,我们可以方便地在编程中进行图像和字符串之间的互相转换。