如何在Windows上使用python将png图像编码为base64?
iconfile = open("icon.png")
icondata = iconfile.read()
icondata = base64.b64encode(icondata)
以上在Linux和OSX中运行良好,但在Windows上它将编码前几个字符然后缩短。这是为什么?
答案 0 :(得分:26)
open("icon.png", "rb")
我对Windows并不是很熟悉,但我想现在发生的事情是该文件在文本模式下打开时包含Windows is interpreting as the end of the file(由于遗留原因)的字符(0x1A)。另一个问题是在Windows上以文本模式打开文件(没有'b')将导致行结尾被重写,这通常会破坏二进制文件,其中这些字符实际上并不表示行的结尾。
答案 1 :(得分:9)
为了增加Miles的答案,first eight bytes in a PNG file是专门设计的:
您的代码按照设计停在1a处。