Windows上python中的base64 png

2024-10-01 11:24:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在Windows上使用python将png图像编码为base64?在

iconfile = open("icon.png")
icondata = iconfile.read()
icondata = base64.b64encode(icondata)

上面的方法在Linux和OSX中可以很好地工作,但是在Windows上,它将对前几个字符进行编码,然后缩短。为什么会这样?在


Tags: 方法编码readpnglinuxwindowsopen字符
2条回答

Open the file in binary mode

open("icon.png", "rb")

我对Windows不是很熟悉,但是我可以想象,当文件以文本模式打开时,它包含一个Windows is interpreting as the end of the file(出于传统原因)的字符(0x1A)。另一个问题是在Windows上以文本模式(不带'b')打开文件会导致行结束被重写,这通常会破坏二进制文件,而这些字符实际上并不表示行的结尾。在

为了增加迈尔斯的回答,我们特别设计了first eight bytes in a PNG file

  • 89-第一个字节检查 第8位还没被剥去
  • “PNG”-让别人读到它是一个 PNG格式
  • 0d 0a-DOS行尾 指示器,以检查是否有 DOS->unix转换
  • 1a-DOS文件结尾字符, 检查文件是否在中打开 二进制模式
  • 0a-unix行尾字符,收件人 检查是否存在unix->DOS 转换

您的代码在1a处停止,如设计所示。在

相关问题 更多 >