【发布时间】:2013-01-22 16:05:01
【问题描述】:
我正在尝试使用 ImageChops 将目录中的所有 .tiff 文件一起添加,但我不断收到错误“IOError:无法识别图像文件”。我以为只是尝试使用文件路径而不是图像对象的问题,但是其他地方的类似代码没有这个问题。
def imadd(): #subcommand
img1=Image.new('RGB',(2048, 2048))
img1.save("summation.tif")
for file in os.listdir(directoryname):
if fnmatch.fnmatch(file, '*.tif'):
im2 = Image.open("summation.tif", mode='r')
im3 = Image.open(os.path.join(directoryname, file))
finalimg = ImageChops.add(im2, im3, 1, 0)
finalimg.save("summation.tif")
经过反复试验,所有部件都可以正常工作,除了:
im3 = Image.open(os.path.join(目录名, 文件)).
我也尝试使用 glob.glob(),但仍然返回相同的错误。
【问题讨论】:
-
可能是 PIL 不支持您拥有的某些特定 TIF 文件。您可以链接到导致错误的其中一个吗?
-
它们是 8Mb、2048x2048 像素的 .TIFF 文件:link 我正在使用 python 重写一个过时的 X 射线衍射处理程序。
-
该文件是一个 16 bpp 灰度 TIFF,使用 PIL 1.1.7 可以正常打开。你用的是同一个版本吗?
-
有趣的是,在某个程序中,我可以在这张图片中看到白点,但在其他程序中,我有他们都说这是一个单一的平面黑色图像。
标签: python image-processing python-imaging-library