base64 到图像,损坏的图像

base64 to image, corrupt image

我有这个代码:

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

和这个 base64:https://pastebin.com/MKjEdmub base64代码来自前端的一个canvas。我已经验证该字符串是完全相同的前端和后端。

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

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

我也尝试使用 base64 库中的 decodestring 函数,但出现了同样的错误。

在你的数据上使用 str.decode('base64') 对我来说很好,你是否删除了开头的 data:image/png;base64, header?如果我不删除它,我也会收到填充错误。您尝试过的在线工具可能会检查此通用语法并在解码前自动将其删除。