我有一个使用Google Charts获得的base64字符串。 该项目是用Python / Django / Javascript编写的,如果有帮助的话。
chartStr = chart.getImageURI()
我想在服务器上将此字符串保存为.png。
我试过
with open('foo.png',"wb") as f:
f.write(chartStr.decode('base64'))
但是我的填充错误不正确。我通过在字符串chartStr的末尾添加一个'='来解决这个问题。当我这样做时,foo.png图像被创建,但是当我尝试打开它时,我收到错误消息
读取PNG图像文件时出现致命错误:不是PNG文件
有什么建议吗? 谢谢!
答案 0 :(得分:1)
当您将=
添加到字符串时,.decode("base64")
返回的字符串与输入字符串相同,减去附加的=
。
要将.png
写入文件,您需要执行以下操作:
head, data = chartStr.split(",", 1)
with open('foo.png',"wb") as f:
f.write(data.decode('base64'))
这会删除data:image/png;base64,
内容并留下一些base64编码数据。