Python:将通过toDataURL获取的PNG字符串转换为二进制PNG文件

时间:2017-02-26 16:15:27

标签: python png

toDataURL方法(参见例如https://developer.mozilla.org/de/docs/Web/API/HTMLCanvasElement/toDataURL)给出了以下形式的PNG的字符串表示:

   "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby
   blAAAADElEQVQImWNgoBMAAABpAAFEI8ARAAAAAElFTkSuQmCC"

如何在python 3中将这样的PNG字符串转换为二进制PNG文件?

1 个答案:

答案 0 :(得分:3)

好的,所以这是一个简单的(也许是愚蠢的)错误。逗号前面的第一部分,即data:image / png; base64必须删除,就像这样

import base64

with open('sample.png', 'wb') as f:
    f.write(base64.decodestring(string.split(',')[1].encode()))

为我做了诀窍。所以你需要删除标题是一个明显的错误。但是我仍然会把它作为一个答案,以防万一发生在我身上。另请参阅有关填充的此线程Python: Ignore 'Incorrect padding' error when base64 decoding