OSError: cannot write mode RGBA as JPEG

im = Image.open(r"C:\Every_day\python_learn\0429c.jpg")
print(im.mode)
# if im.mode != 'RGB':
#     im = im.convert('RGB')
if im.size[0] > 3000 or im.size[1] > 3000:
    im = im.resize((int(im.size[0] * 0.3),
                    int(im.size[1] * 0.3)),
                   resample=Image.ANTIALIAS)
    im.save("4.jpg")
elif im.size[0] > 2000 or im.size[1] > 2000:
    im = im.resize((int(im.size[0] * 0.5),
                    int(im.size[1] * 0.5)),
                   resample=Image.ANTIALIAS)
    im.save("5.jpg")
elif im.size[0] > 1000 or im.size[1] > 1000:
    im = im.resize((int(im.size[0] * 0.7),
                int(im.size[1] * 0.7)),
               resample=Image.ANTIALIAS)
    im.save("6.jpg")              

原因:RGBA意思是红色,绿色,蓝色,Alpha的色彩空间,Alpha指透明度。而JPG不支持透明度,所以要么丢弃Alpha,要么保存为.png文件

解决

方案一

im = im .convert("RGB") 
im.save("**.jpg")

方案二

im.save("**.png")  

你可能感兴趣的:(OSError: cannot write mode RGBA as JPEG)