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)
为什么你认为应该有一个属性
ANTIALIAS
?
- mkrieger1 2023-07-04
向后兼容是 1960 年代的风格,当时 IBM 必须吸取教训:-)
- Wolfgang Fahl 2023-08-03
4 个回答
#1楼
已采纳
得票数 32
ANTIALIAS
在 Pillow 10.0.0 中被删除(在许多以前的版本中被弃用)。现在您需要使用PIL.Image.LANCZOS
或PIL.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()
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 上。
#3楼
得票数 1
问题出在pillow 10.0 上
尝试卸载pillow可能会出现一些错误。
把这个放到cmd里就可以了
pip install Pillow==9.5.0
#4楼
得票数 0
笨办法,但管用:
在easyOCR/Scripts
的utils.py文件中,我将ANTIALIAS
替换为LANCZOS
。
通过额外的支持信息可以改进您的答案。请编辑添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何撰写良好答案的更多信息。
- Community 2023-08-04