关于 python 2.7:图像使用 .show() 正确显示,但使用工件保存

Image shows properly with .show() but saves with artifacts

我已经解开图像,并在使用 img.show() 时使用 PIL,我可以在外部查看器中正确看到图像,但是当我尝试使用 img.save() 保存它时,它会受到水平颜色伪影的困扰。由于 img.show() 使用 bmp 临时保存和显示文件,我尝试使用 img.save(filepath, "bmp") 以及其他文件格式。其他格式,如 jpg 和 png,会完全破坏图像,而 bmp 会产生颜色伪影。我检查了 PIL 的文档,但没有帮助。我可以使用什么方法来保存我正确看到的图像?


经过多次尝试,结果不是:

1
2
with open("img.bmp", 'w') as f:
    image.save(f)

打开添加了二进制属性"b"的文件解决了这个问题。像这样:

1
2
with open("img.bmp", 'wb') as f:
    image.save(f)