Pillow 10.0.0中Image.ANTIALIAS报AttributeError的技术求助
解决Pillow 10.0.0中Image.ANTIALIAS不存在的问题
问题出在Pillow版本更新上:从Pillow 10.0.0开始,Image.ANTIALIAS被彻底移除了,它的官方替代项是Image.Resampling.LANCZOS。
早在Pillow 9.1.0版本时,ANTIALIAS就已经被标记为弃用,控制台会提示开发者改用Resampling.LANCZOS,到10.0.0版本直接删掉了这个常量,所以调用时会触发AttributeError。而BILINEAR这类常量目前还保留着旧写法,因此能正常使用。
直接修改代码即可解决问题:
import tkinter as tk from PIL import Image, ImageTk window = tk.Tk() image = Image.open(r"VC.png") # 替换ANTIALIAS为Resampling.LANCZOS image = image.resize((20, 20), Image.Resampling.LANCZOS) tk_image = ImageTk.PhotoImage(image) image_label = tk.Label(window, image=tk_image) image_label.pack() window.mainloop()
如果需要兼容新旧版本的Pillow,可以用try-except做兼容处理:
import tkinter as tk from PIL import Image, ImageTk window = tk.Tk() image = Image.open(r"VC.png") try: # 适配Pillow 9.1.0及以上版本 image = image.resize((20, 20), Image.Resampling.LANCZOS) except AttributeError: # 适配Pillow 9.1.0以下版本 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()
内容的提问来源于stack exchange,提问作者MT_276
相关产品推荐
相关产品推荐

