python将.tif转换为.png而不将模式从cmyk更改为rgb

时间:2014-05-11 15:20:25

标签: python graphics python-imaging-library

我想将.tif转换为.png。我找到的简单解决方案是

import Image

im = Image.open('39.tif')
im.save('39.png')

这没有用,并且给了我以下错误:

Traceback (most recent call last):
  File "C:/Users/Marijus/Desktop/templates/rename.py", line 8, in <module>
    im.save('Foto.png')
  File "C:\Python27\lib\site-packages\PIL\Image.py", line 1441, in save
    save_handler(self, fp, filename)
  File "C:\Python27\lib\site-packages\PIL\PngImagePlugin.py", line 506, in _save
    raise IOError, "cannot write mode %s as PNG" % mode
IOError: cannot write mode CMYK as PNG

经过一段谷歌搜索后,我发现如果我想要这个,我必须将模式从CMYK更改为RGB

if im.mode == "CMYK":
    im = im.convert("RGB")

它有效,但它改变了颜色。如何在不将模式从cmyk更改为rgb的情况下将.tif转换为.png?

1 个答案:

答案 0 :(得分:0)

PNG文件只有索引,灰色,RGB和RGBA模式。这是文件格式,因此如果您需要CMYK使用其他文件格式,例如TIF。