我正在尝试将base64图像数据转换为图像文件并进行保存。
base64_image_str = request.POST.get('base64_image_str')
# it is smthg like: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDA......."
with open("newimage.png", "wb") as f:
f.write(base64_image_str.decode('base64'))
f.close()
也尝试过:
f = open("newimage.png", "wb")
f.write(decodestring(base64_image_str))
f.close()
正在保存图像,但图像已损坏且无法打开。我究竟做错了什么?
答案 0 :(得分:6)
字符串的开头,直到第一个逗号,是通过POST数据添加的信息,因此不是文件的base64编码的一部分。所以在解码前删除它。
答案 1 :(得分:3)
如您所见,真实图像数据以逗号开头,您应该删除其余部分,
base64_image_str = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDA......."
base64_image_str = base64_image_str[base64_image_str.find(",")+1:]