Image.save 给出 AttributeError:“NoneType”对象没有属性“save”错误

Image.save giving AttributeError: 'NoneType' object has no attribute 'save'error

提问人:Rex Kartik 提问时间:11/9/2023 更新时间:11/9/2023 访问量:24

问:

我的代码在保存图像时出现错误

以下是我的代码:

import sys
from PIL import Image, ImageOps
import os
import PIL

#suppurted formet
spfr = [".jpeg", ".jpg", ".png"]

#check CLA
if len(sys.argv) < 3:
    sys.exit("Too few command-line arguments")
elif len(sys.argv) > 3:
    sys.exit("Too many command-line arguments")
elif os.path.splitext(sys.argv[1])[1] != os.path.splitext(sys.argv[2])[1]:
     sys.exit("Not same extension")
elif os.path.splitext(sys.argv[1])[1] not in spfr:
    sys.exit("Not a image")

#open image
try:
    shirt = Image.open("shirt.png")
    old = Image.open(sys.argv[1])
except FileNotFoundError or PIL.UnidentifiedImageError:
    sys.exit()

shirt_size = shirt.size

old = ImageOps.fit(old, shirt_size)

new = old.paste(shirt, shirt)

new.save(sys.argv[2])

它给了我以下错误:

Traceback (most recent call last):
  File "/workspaces/116355975/Python/shirt/shirt.py", line 32, in <module>
    new.save(
    ^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'save'

我该怎么办

我正在加速它将图像保存到新文件

图像处理 保存 python-imaging-library cs50

评论

1赞 Michael Butscher 11/9/2023
该方法返回 。pasteNone
0赞 John Gordon 11/9/2023
except FileNotFoundError or PIL.UnidentifiedImageError这不是捕获多个异常的正确方法。使用逗号代替 .你写它的方式永远不会发现第二个异常。or

答:

0赞 Rex Kartik 11/9/2023 #1

我已经通过删除“new”变量并且不分配给任何内容并将 new 更改为 old 来解决它ǫld.paste(shirt, shirt)new.save(sys.argv[2])