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()
输出:
在这里,我们得到了输出,但是如果您在开始的字符串中注意到我们得到了这个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()
输出: