AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

回答 4 浏览 1.8万 2023-07-04
  • 尝试在我的 Tkinter GUI 中包含图像,因此使用 PIL。
  • Image.ANTIALAIS 不起作用,但 Image.BILINEAR 起作用

这是一些示例代码:

import tkinter as tk
from PIL import Image, ImageTk

window = tk.Tk()

image = Image.open(r"VC.png")
image = image.resize((20, 20), Image.ANTIALIAS)

tk_image = ImageTk.PhotoImage(image)

image_label = tk.Label(window, image=tk_image)
image_label.pack()

window.mainloop()

这是错误:

Traceback (most recent call last):
  File "<module1>", line 19, in <module>
AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'
  • 尝试重新安装 pip AND Pillow。没用。
  • 向 Chat-GPT 询问了此事,建议我升级到 Pillow 的最新版本。我使用的是最新版本(10.0.0)
MT_276 提问于2023-07-04
该问题需要足够的代码来实现最小可重现示例D.L 2023-07-04
如何提出好问题:stackoverflow.com/help/how-to-askD.L 2023-07-04
为什么你认为应该有一个属性ANTIALIASmkrieger1 2023-07-04
向后兼容是 1960 年代的风格,当时 IBM 必须吸取教训:-)Wolfgang Fahl 2023-08-03
4 个回答
#1楼 已采纳
得票数 32

ANTIALIAS 在 Pillow 10.0.0 中被删除(在许多以前的版本中被弃用)。现在您需要使用PIL.Image.LANCZOSPIL.Image.Resampling.LANCZOS

(这与ANTIALIAS引用的算法完全相同,只是您不能再通过名称ANTIALIAS访问它。)

参考:Pillow 10.0.0 发行说明(包含已删除常量表)


简单代码示例:

import PIL
import numpy as np

# Gradient image with a sharp color boundary across the diagonal
large_arr = np.fromfunction(lambda x, y, z: (x+y)//(z+1),
                            (256, 256, 3)).astype(np.uint8)
large_img = PIL.Image.fromarray(large_arr)

# Resize it: PIL.Image.LANCZOS also works here
small_img = large_img.resize((128, 128), PIL.Image.Resampling.LANCZOS)
print(small_img.size)

large_img.show()
small_img.show()

slothrop 提问于2023-07-04
slothrop 修改于2023-07-10
pip install Pillow==9.5.0旧代码的解决方法。gamingflexer 2023-07-05
代码示例会有所帮助,我仍然遇到 Image.Resampling.LANCZOS 错误G.Lebret 2023-07-10
请参阅编辑。如果仍有问题,您可以发布一个问题,说明 PIL 版本和您收到的错误消息。slothrop 2023-07-10
我喜欢缩写 LANCZOS 如何迫使用户访问 stackoverflow - Pillow 人员对该平台进行了非常好的营销! ChatGPT 不会以 2021 年的截止时间来猜测这一点。我们需要做更多的事情来迷惑用户和 ChatGPT!Wolfgang Fahl 2023-08-03
#2楼
得票数 2

在easyOcr中,出现以下错误:

img = cv2.resize(img,(int(model_height*ratio),model_height),interpolation=Image.ANTIALIAS)AttributeError: module 'PIL.Image' has no attribute 'ANTIALIAS'

我所做的如下:

pip uninstall Pillow
pip install Pillow==9.5.0

问题一定出在 Pillow 版本 10.0 上。

EzioFenix 提问于2023-07-20
#3楼
得票数 1

问题出在pillow 10.0 上

尝试卸载pillow可能会出现一些错误。

把这个放到cmd里就可以了 pip install Pillow==9.5.0

Parijat Softwares 提问于2023-07-22
#4楼
得票数 0

笨办法,但管用:

easyOCR/Scripts的utils.py文件中,我将ANTIALIAS替换为LANCZOS

Mayur Shrotriya 提问于2023-07-31
Mayur Shrotriya 修改于2023-07-31
通过额外的支持信息可以改进您的答案。请编辑添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何撰写良好答案的更多信息。Community 2023-08-04