0

我正在尝试从 PIL 导入 Image、ImageChops、ImageOps 在 python 中调试此脚本

我搜索了所有问题似乎是“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)

编辑 感谢您的快速回答标记。我想到了。

我不得不:

pip uninstall PIL
sudo apt-get install libjpeg8-dev 
pip install PIL

我没有安装 libjpeg。不知道为什么我没有收到错误。

4

1 回答 1

1

如果程序永远不会到达“无法到达”这一行,那么问题就是thumbnail抛出异常。不过,您没有在问题中提到这一点,它应该会产生错误。

PIL 使用延迟图像加载 - 在open调用中它可能会打开文件,但实际上并没有尝试读取整个文件。如果您的文件损坏或格式错误,一旦您尝试使用图像,就像thumbnail正在做的那样。

于 2013-03-11T23:05:39.583 回答