Py2exe的Python脚本无法以TIFF格式保存图像

时间:2012-05-25 07:20:22

标签: python python-imaging-library py2exe tiff

我正在处理一个python脚本,它处理一个Image并将其从GIF图像转换并保存为TIFF格式,扩展名为“.tif”......

脚本工作正常,甚至可以给我正确的输出..

然而,当我使用Py2exe将其转换为exe时(甚至尝试过Cx-Freeze) 它无法以TIFF格式保存已处理的图像...它会引发以下错误:

  

文件“PIL \ Image.pyc”,第1423行,保存KeyError:'。tt'

保存图像的代码如下所示..

im_orig = Image.open(path1)
big = im_orig.resize((116, 56), Image.NEAREST)
ext = ".tif"
new=path.replace('.','') 
newpath=new+"input-NEAREST"+ext
newimage=big.save(newpath)

我甚至尝试按以下方式更改上述代码以避免密钥错误

im_orig = Image.open(path1)
big = im_orig.resize((116, 56), Image.NEAREST)
new=path.replace('.','') 
newpath=new+"input-NEAREST.tif"
newimage=big.save(newpath, "TIFF" )

当我将其作为脚本运行时,更改的代码再次完美地运行,

但是当我将脚本作为可执行文件运行时抛出错误!

我得到的错误是:

\PIL\Image.py", line 1429, in save
save_handler = SAVE[string.upper(format)] # unknown format
KeyError: 'TIFF'

显然错误应该在这一行:

newimage=big.save(newpath, "TIFF" )

非常感谢您解决此问题的任何帮助或指导。

2 个答案:

答案 0 :(得分:0)

我认为问题与PIL中图像插件的延迟初始化有关。编译后,它无法找到这些插件。解决方案是手动导入所需的插件。所以你需要的是

import TiffImagePlugin

答案 1 :(得分:0)

我有同样的问题,除了使用cx_freeze而不是py2exe。 Raja Selvaraj的解决方案为我修好了。