为什么我不能用PyPNG往返一个图像?

2024-04-24 21:39:42 发布

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

这看起来相当简单:

import png
rdr = png.Reader(filename='help.png')
width, height, pixels, metadata = rdr.read()
with open('help-new.png', 'w') as outfile:
    png.Writer(**metadata).write(outfile, pixels)

但是,我无法打开我的新图像,因为文件“似乎已损坏、损坏或太大”。如果我尝试将结果加载回PyPNG,我会得到以下结果:

^{pr2}$

附加信息:元数据如下所示:

'bitdepth': 8, 'interlace': 0, 'planes': 1,
'greyscale': False, 'alpha': False, 'size': (18, 18)

所有的0都是255,0和255之间的表格。源文件为718字节,结果文件为748字节。在


Tags: 文件importfalseread字节pnghelpfilename
1条回答
网友
1楼 · 发布于 2024-04-24 21:39:42

以二进制模式打开输出文件:

open('help-new.png', 'wb') as outfile:
                       ^
                       |
                  that's it,
                  right there

否则,I/O层可能会执行新行转换,而这是二进制文件永远不需要的。在

相关问题 更多 >