【问题标题】:Strange Pillow exception while saving cropped image保存裁剪图像时出现奇怪的枕头异常
【发布时间】:2015-06-08 21:32:38
【问题描述】:

我们有以下代码:

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))

在尝试保存裁剪后的图像时,我们得到一个奇怪的“量化表的数量不是有效的。应该在 1 到 4 之间。”例外,只是在我们的一种环境中。 最奇怪的部分是代码有时可能会工作即使裁剪或图像没有改变

有人对此有领导吗?

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

【问题讨论】:

  • 那个环境有什么不同吗?
  • 我们已经检查了一切......从操作系统包到 Pillow 版本,尝试重新安装 Pillow 等等......仍然没有运气
  • 您是否有任何可能与 Pillow 冲突的 PIL 安装?
  • 你是如何导入 Image 类的?

标签: python python-2.7 python-imaging-library


【解决方案1】:

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

会弹出错误

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

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

只是为了说清楚:

pip uninstall PIL
pip uninstall Pillow
pip install Pillow

然后,只需重新启动 Web 服务器。

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

import Image

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

from PIL import Image

【讨论】:

  • 当替代品采用与现有模块相同的包名时会发生这种情况:\
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 2020-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
相关资源
最近更新 更多