我正在使用django的ImageFile来执行以下命令:
>>> f = open("path/image.jpg")
>>> myImage = ImageFile(f)
>>> dim = myImage._get_image_dimensions()
>>> dim
>>> dim is None
True
没有显示错误消息,但dim为空,类型为“NoneType”。
>> myImage.height
因为它而返回错误消息:
File "some\path\django\core\files\images.py", line 21, in _get_height
return self._get_image_dimensions()[1]
TypeError: 'NoneType' object has no attribute '__getitem__'
我在Windows 7机器上运行python 2.7,django 1.6,我的朋友在Mac上尝试了相同的代码并且工作正常。
答案 0 :(得分:1)
如果您阅读code。您将看到get_image_dimensions
从文件中读取一个块并尝试使用PIL将其解析为图像。如果失败,则会增加chunksize并重复。 (增加chunksize是读取整个文件的次数少于(filesize / initial chunksize)次。Fileformats like TIFF need to read the while file.)
在3个案例中可能会发生None
的回复。
None
。尝试直接在您的计算机上使用PIL并看到它可以解析您的文件。