自定义ResizeImage类出现AttributeError:无thumbnail属性问题咨询
问题分析与快速修复建议
核心问题很明确:你把自定义ResizeImage类的实例和PIL Image对象搞混了——self是你自定义类的实例,它本身并没有thumbnail方法,这个方法是PIL库中Image对象的专属方法。
具体修正步骤:
- 先把PIL的导入移到类外面,类内部导入不是Python的规范写法:
from PIL import Image class ResizeImage: # 类的方法写在这里 - 假设你的
open方法是用来加载图片的,要把加载后的Image对象保存为类的实例属性(比如self.img),比如:def open(self, img_path): self.img = Image.open(img_path) # 把PIL Image对象存在self的实例属性里 - 在
newImage方法里,调用这个实例属性的thumbnail方法,而不是直接用self.thumbnail:def newImage(self, dimensiune): NouaPoza = Image.new('RGBA', (dimensiune, dimensiune), (255, 255, 255, 0)) # 调用self.img的thumbnail方法,而非self的 self.img.thumbnail((dimensiune, dimensiune), Image.Resampling.LANCZOS) # 后续居中坐标计算要基于self.img的尺寸 coordonateCentrare = ((dimensiune - self.img.width) // 2, (dimensiune - self.img.height) // 2) # 将缩略后的图片粘贴到新画布上 NouaPoza.paste(self.img, coordonateCentrare) return NouaPoza
额外提示:
新版Pillow库中Image.ANTIALIAS已经被弃用,建议改用Image.Resampling.LANCZOS,避免出现版本兼容警告。
内容的提问来源于stack exchange,提问作者Claudiu
相关产品推荐
相关产品推荐

