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

log*_*x 2 4 python png

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

   "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby
   blAAAADElEQVQImWNgoBMAAABpAAFEI8ARAAAAAElFTkSuQmCC"
Run Code Online (Sandbox Code Playgroud)

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

log*_*x 2 6

好吧,这是我犯的一个简单(也许是愚蠢的)错误。逗号前的第一部分,即 data:image/png;base64 必须去掉,像这样

import base64

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

对我有用。因此,您需要删除标题是一个明显的错误。但是我仍然会将此作为答案,以防它发生在其他人身上,就像发生在我身上一样。另请查看此线程Python: Ignore 'Incorrect padding' error when base64 解码有关填充。