OSError: cannot write mode RGBA
2019-10-08 本文已影响0人
空口言_1d2e
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")