我正在尝试解码从目录中选择的图像。一旦选择了图像,我需要解码编码的字符串。
我一直收到错误“填充错误”的信息。
下面是我打印时的代码和编码字符串。
save()
这里是字符串:它是一个很大的字符串,所以我在这里托管了它。 https://www.scribd.com/document/402282670/String
答案 0 :(得分:0)
此问题的答案是其他答案https://stackoverflow.com/a/6102526/6110285
我会说这是this question
的副本基本base64会将3个字节编码为4个字节,因此,如果填充( = 字符)在解码中遗漏了1个或2个字节,则会引起您提到的错误< / p>
答案 1 :(得分:0)
导致错误的填充错误,因为有时在编码的字符串中也存在元数据。如果您的字符串看起来像:“ data:image / png; base64,... base 64的东西....”,那么您需要先删除第一部分,然后再对其进行解码。
如果您有图像base64编码的字符串,请尝试下面的代码段。
from PIL import Image
from io import BytesIO
from base64 import b64decode
im = Image.open(BytesIO(b64decode(encoded .split(',')[1])))
im.save("image.png")
否则,您可以简单地将其写为
with open(filename, 'wb') as image_file:
image_file.write(b64decode(encoded.split(',')[1]))