gpt4 book ai didi

python - 无法将 Base64 字符串转换为图像

转载 作者:行者123 更新时间:2023-12-03 08:01:31 24 4
gpt4 key购买 nike

有人可以帮我转this base64 data进入图像?我不知道是因为数据没有正确解码还是其他原因。这是我解码数据的方法:

import base64

c_data = { the data in the link (string type) }

c_decoded = base64.b64decode(c_data)

但它给出了错误“填充不正确”,因此我遵循了一些教程并尝试了不同的方法来解码数据。

c_decoded = base64.b64decode(c_data + '=' * (-len(c_data) % 4))

c_decoded = base64.b64decode(c_data + '=' * ((4 - len(c_data) % 4) % 4)

这两种方式都解码了数据,而没有给出错误填充不正确,但现在我无法将解码的数据转换为图像。
我尝试创建一个空 png,然后将解码后的数据写入其中:

from PIL import Image

with open('c.png', 'wb') as f:
f.write(c_decoded)
image = Image.open('c.png')
image.show()

它不起作用并给出错误:无法识别图像文件“c.png”
我尝试过使用 BytesIO:

from PIL import Image
import io
from io import BytesIO

image = Image.open(io.BytesIO(c_decoded))
image.show()

现在它给出了错误:无法识别图像文件<_io.BytesIO对象位于0x0000024082B20270>
请帮助我。

最佳答案

感谢@jps 解释了为什么我的代码不起作用。查看 @Mark Setchell 解决方案,了解解码 Base64 数据的可靠方法(他的代码修复了 @jps 指出的我的错误)

所以基本上删除base64字符串开头的[data:image/png;base64,],因为它只是数据的格式。更改此:

c = "data:image/png;base64,iVBORw0KGgoAAAANSUh..."

对此:

c = "iVBORw0KGgoAAAANSUh..."

现在我们可以使用

c_decoded = base64.b64decode(c)

关于python - 无法将 Base64 字符串转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73923051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com