将base64字符串转换为图像并保存

时间:2014-12-22 14:07:32

标签: python base64

我正在尝试将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()

正在保存图像,但图像已损坏且无法打开。我究竟做错了什么?

2 个答案:

答案 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:]