调用Pillow的thumbnail方法报AttributeError: 'NoneType' object has no attribute 'save'如何解决
报错原因
Pillow 中的 thumbnail() 方法属于原地操作,只会直接修改调用该方法的图片对象本身,不会返回新的Image实例,默认返回值为None。你将该返回值赋值给了New_img变量,后续调用New_img.save()本质是对None调用方法,自然会触发'NoneType' object has no attribute 'save'的属性错误。
额外提示:Pillow 9.1.0及以上版本已经弃用了Image.ANTIALIAS常量,替换为Image.Resampling.LANCZOS,高版本环境运行原代码还会触发弃用警告。
修复方法
方案1:不需要保留原图的场景
直接使用原图片对象操作即可,无需接收thumbnail()的返回值:
from PIL import Image img = Image.open("demo.png") img.thumbnail((90,90), Image.Resampling.LANCZOS) img.save("deTT.png")
方案2:需要保留原图不被修改的场景
先拷贝原图生成新的图片对象,再对新对象做缩略图处理:
from PIL import Image img = Image.open("demo.png") new_img = img.copy() new_img.thumbnail((90,90), Image.Resampling.LANCZOS) new_img.save("deTT.png")
内容的提问来源于stack exchange,提问作者Sahej Singh
相关产品推荐
相关产品推荐

