2015-09-06 99 views
0

我从base64中的表单接收图像,我想将其转换回PNG文件类型。将base64转换为图像:不正确的填充错误

为此我尝试以下方法

attempt1 = base64.b64decode(picture.data) 
attempt2 = picture.data.decode('base64') 

,但我收到的错误Error: Incorrect padding

我看到this answer并尝试使用该功能,但是我得到相同的错误。

我该怎么办才能解决这个问题?谢谢。

编辑

我的base64图像看起来像这样(字符的列表是更长的时间):

data:image/png;base64, OouhoGUiyf+YdiHl== 
+0

也许你可以提供关于你有数据,有多少个字符是它的一些信息?它是否以一系列'='结尾? – jojonas

+0

您是否从解码过程中排除了'data:image/png; base64,'部分? – jojonas

+1

你传递的字符串中有哪部分被解码?在你的例子中的“数据”是“OouhoGUiyf + YdiHl ==',没有什么比这更重要的了。 –

回答

0

看来,你的数据是DataURL方案

数据URL由四部分组成:前缀(数据:),指示数据类型的MIME类型,非文本的可选base64标记以及数据本身:

data:[<mediatype>][;base64],<data> 

你应该只提取<data>部分从您的字符串:

base64.decodebytes(picture.data.split(",")[1])