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

📅  最后修改于: 2022-05-13 01:54:29.541000             🧑  作者: Mango

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

要将图像存储或传输到某些图像,我们需要将其转换为字符串,以便该字符串应该描绘我们作为输入提供的图像。所以在Python中做这个操作,是一个简单的任务,并不复杂,因为我们有很多Python中的函数可用。

将图像转换为字符串

  • 这里首先我们导入 Base64 方法来编码给定的图像
  • 接下来,我们以rb模式打开我们的图像文件,该文件以二进制模式读取。
  • 我们使用image2.read()读取图像,它读取图像并使用 b64encode() 对其进行编码,这是用于将数据编码为 Base64 的方法
  • 最后,我们打印我们的编码字符串

使用的图像:

Python3
import base64
  
  
with open("food.jpeg", "rb") as image2string:
    converted_string = base64.b64encode(image2string.read())
print(converted_string)
  
with open('encode.bin', "wb") as file:
    file.write(converted_string)


Python3
import base64
  
  
file = open('encode.bin', 'rb')
byte = file.read()
file.close()
  
decodeit = open('hello_level.jpeg', 'wb')
decodeit.write(base64.b64decode((byte)))
decodeit.close()


输出:

这是使用 Base64 转换为字符串的图像的输出

在这里,我们得到了输出,但是如果您在开始的字符串中注意到我们得到了这个b'这我们可以说是单引号对中的 Base64 编码字符串。因此,如果我们想删除它,我们可以通过将 Print 语句替换为print(my_string.decode('utf-8'))

将字符串转换为图像

这里把它从字符串转换过来,其实是一个逆向过程,也是直截了当的方法

  • 首先我们导入Base64。然后我们打开我们转储字符串的二进制文件。然后打开以二进制模式读取的文件rb模式。
  • 将从文件中读取的数据存储到变量中。然后关闭文件
  • 然后只要给任何图像文件名(例如:“myimage.png” )并在wb模式下打开它写在B inary
  • 使用 b64.decode() 解码二进制文件,然后使用.close()关闭文件

注意:我们将使用上面创建的字符串将其转换回图像

蟒蛇3

import base64
  
  
file = open('encode.bin', 'rb')
byte = file.read()
file.close()
  
decodeit = open('hello_level.jpeg', 'wb')
decodeit.write(base64.b64decode((byte)))
decodeit.close()

输出: