2017-04-10 144 views
0

我有这样的代码:BASE64到图像,损坏图像

with open("bla.png", "wb") as fh: 
    fh.write(image.decode('base64')) 

这BASE64:https://pastebin.com/MKjEdmub 的基于64代码来自从前端的画布。我已验证该字符串是完全相同的前端和后端。

如果我尝试运行代码,它会显示当前base64代码:Error: Incorrect padding。我做了一些研究,结果发现它需要一定数量的字节才能正确转换,因此它需要在字符串末尾需要=。在这种情况下,它需要字符串末尾的==。当我这样做时,它转换得很好,但图像已损坏(无法读取)。

当我使用在线转换器时,当前base64正常工作。当我添加==时,它也不适用。

我也尝试过使用base64库中的decodestring函数,但是这给出了相同的错误。

回答

1

使用str.decode('base64')您的数据对我来说工作正常,您是否在开始时删除了data:image/png;base64,标头?如果我不删除它,我也会得到一个填充错误。您尝试过的在线工具可能会检查此常用语法,并在解码之前自动将其删除。

+0

非常感谢Florian!我从来不知道标题应该被删除。现在工作! – 1GDST