0

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

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

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

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

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

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" )

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

4

2 回答 2

1

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

import TiffImagePlugin
于 2012-07-11T15:56:55.773 回答
0

我遇到了同样的问题,除了使用 cx_freeze 而不是 py2exe 时。Raja Selvaraj 的解决方案为我解决了这个问题。

于 2013-05-22T12:11:21.073 回答