保存裁剪图像时出现奇怪的枕头异常

Strange Pillow exception while saving cropped image

我们有以下代码:

img = Image.open(FileSystemStorage().path(relpath))

coords = [
          cd['crop_start_x'],
          cd['crop_start_y'],
          cd['crop_end_x'],
          cd['crop_end_y']   
          ]

cropped_img = img.crop(coords)
cropped_path = "%s-cropped%s" % os.path.splitext(relpath)
tasks.delete_temporary_file.delay(fss.path(relpath))
cropped_img.save(fss.path(cropped_path))

尝试保存裁剪后的图像时,我们遇到一个奇怪的 "Not a valid number of quantization tables. Should be between 1 and 4." 异常,就在我们的一个环境中。 最奇怪的是代码有时可能会工作即使裁剪或图像没有改变

有人对此有指导吗?

我们正在使用 Pillow 2.8.1、python 2.7.6 和 Ubuntu 服务器 12.04

基本上,问题源于其中一个应用程序服务器中的 PIL 安装冲突。很难找到,因为它们隐藏在负载平衡器后面,所以错误会弹出 有时

当我们在控制台上发出 pip freeze 时,我们发现在其中一台服务器上同时安装了 PIL 和 Pillow。

删除它们并重新安装 Pillow 后,我们解决了这个问题。

澄清一下:

pip uninstall PIL
pip uninstall Pillow
pip install Pillow

然后,只需重新启动网络服务器即可。

正如其他人所说,另一个可能的原因是使用了:

import Image

该语句仅适用于 PIL,应避免使用。 我们应该始终使用:

from PIL import Image