python 属性错误:模块“PIL.Image”没有属性“ANTIALIAS”

ca1c2owp  于 2023-08-02  发布在  Python
关注(0)|答案(4)|浏览(2114)
  • 尝试在我的Tkinter GUI中有图像,因此使用PIL。
  • IMAG.ANTIALAIS不起作用,但IMAG.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)
a5g8bdjr

a5g8bdjr1#

ANTIALIAS在Pillow 10.0.0中被删除(在许多以前的版本中被弃用)。现在您需要使用PIL.Image.LANCZOSPIL.Image.Resampling.LANCZOS
(This与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()

字符串

pdkcd3nj

pdkcd3nj2#

在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的问题。

v1uwarro

v1uwarro3#

问题是枕头10.0
尝试卸载枕头可能给予一些错误。
把这个放到cmd pip install Pillow==9.5.0

r9f1avp5

r9f1avp54#

Hacky方式,但工作:
easyOCR/Scripts的utils.py文件中,我将ANTIALIAS替换为LANCZOS

相关问题