Pythonでbase64を用いてdecodeする際に、非常に苦しみました。
Canvasの画像をbase64にして、POSTでデータ送信し後、base64を画像データにdecodeしようとした際にエラーが発生しました。
'Incorrect padding'
decodeする際には、下記のようにdecodeすればOKという記述も多々ありますが、
img_data = base64.b64decode(base64image) img_data = base64.urlsafe_b64decode(base64image)
これでは、Incorrect paddingらしい…..
(原因はあまりわかっていないのだが、形式が違うのだろうと想い….)
stackflowで下記を見つけました。
b64_string += "=" * ((4 - len(b64_string) % 4) % 4) #ugh
これを使ってみました。
base64image += "=" * ((4 - len(base64image) % 4) % 4) img_data = base64.urlsafe_b64decode(base64image)
これで、エラーが解消されました。
原因などは、正しく理解できていないので、ご利用は自己責任でお願いします!!