首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能用PyPNG往返一张图片?

为什么我不能用PyPNG往返一张图片?
EN

Stack Overflow用户
提问于 2016-02-24 16:43:01
回答 1查看 470关注 0票数 3

这似乎相当简单:

代码语言:javascript
复制
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中,我会得到以下结果:

代码语言:javascript
复制
FormatError: FormatError: PNG file has invalid signature.

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

代码语言:javascript
复制
'bitdepth': 8, 'interlace': 0, 'planes': 1,
'greyscale': False, 'alpha': False, 'size': (18, 18)

第一个调色板条目是(0,0,0,0),而其他调色板条目都是形式( 255,255,255,A),其中A在0到255之间。源文件为718字节,结果文件为748字节。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 16:45:49

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

代码语言:javascript
复制
open('help-new.png', 'wb') as outfile:
                       ^
                       |
                  that's it,
                  right there

否则,I/O层可能会执行换行符转换,这对于二进制文件来说是不可能的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35607995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档