Image.open给出错误无法识别图像文件

时间:2018-02-23 09:33:38

标签: python image pillow

我正在尝试使用PIL的Image功能打开geotiff文件。它引发了错误:

OSError: cannot identify image file 'Whatever\\image\\I\\use.tiff'

我看到问题为here,例如,解决方案要么使用

Import Image 

而不是

From PIL import Image

我认为这是一种过时的溶剂;我无法导入图像。另一个解决方案是将枕头更新到2.9,但5年后我们在5.0.0。我也尝试了4.0.0,我收到同样的错误。 这是否有最新的溶剂?

这是我的代码,here是文件的链接:

image_path = 'each\\image\\I\\use.tiff'

from PIL import Image
Image.open(image_path)

2 个答案:

答案 0 :(得分:1)

我将tiff图像文件从64位格式转换为32位格式,并且可以正常工作。

您可以使用ImageMagick 7做到这一点:

magick oldimage.tiff -depth 8 newimage.tif

或使用ImageMagick 6或更早版本:

convert out_0.tiff -depth 8 newimage.tiff

答案 1 :(得分:0)

pyvips可以直接与TIFF一起使用。它将您的文件加载为具有两个Alpha通道的mono int32图像。

$ python3
Python 3.8.2 (default, Apr 27 2020, 15:53:34) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvips
>>> x = pyvips.Image.new_from_file("rgb_CGI.tiff")
>>> x.width, x.height, x.bands, x.format, x.interpretation
(2924, 2088, 3, 'int', 'b-w')
>>> # getpoint reads out a pixel
>>> x.getpoint(10, 10)
[156.0, 141.0, 133.0]
>>> # avg finds the image average
>>> x.avg()
125.31475912560515
>>> 

它会忽略多余的GDAL标签,但是您可以执行所有常规的2D图像处理,并且是quite a bit quicker than PIL