Python PIL库无法使用 image.thumbnail(size, Image.ANTIALIAS)
我正在调试这个Python脚本,里面用到了PIL库中的Image、ImageChops和ImageOps。
我到处查找,问题似乎出在这里:“image.thumbnail(size, Image.ANTIALIAS)”。有没有人有什么想法?谢谢!
image = Image.open(f_in)
print "got here"
image.thumbnail(size, Image.ANTIALIAS)
print "cannot get here"
image_size = image.size
if pad:
thumb = image.crop( (0, 0, size[0], size[1]) )
offset_x = max( (size[0] - image_size[0]) / 2, 0 )
offset_y = max( (size[1] - image_size[1]) / 2, 0 )
thumb = ImageChops.offset(thumb, offset_x, offset_y)
else:
thumb = ImageOps.fit(image, size, Image.ANTIALIAS, (0.5, 0.5))
thumb.save(f_out)
编辑 谢谢你快速的回答,Mark。我搞明白了。
我需要:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL
我没有安装libjpeg。不知道为什么没有报错。
1 个回答
1
如果程序没有到达“无法到达这里”这一行,那问题就出在 thumbnail
抛出了一个异常。你在问题中没有提到这一点,这应该会生成一个错误。
PIL(Python图像库)使用的是懒加载图片的方式——在 open
调用时,它可能会打开文件,但实际上并不会立即读取整个文件。如果你的文件损坏了或者格式不对,当你尝试对图片进行操作时,就会失败,就像 thumbnail
所做的那样。