2017-04-10 189 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