OSError: cannot write mode RGBA as JPEG

不好使,RGBA转化不了RGB啊!!!!!

原代码

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

解决
方法一

captcha=captcha.convert('RGB')
captcha.save('code.jpg')
1
2
方法二

captcha.save('code.png')
————————————————
版权声明:本文为CSDN博主「小小蒲公英」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39777626/article/details/82774270/

 

---------------------

https://www.it610.com/article/1294407617384357888.htm

 

# -*- coding: utf-8 -*-
import os
import glob
from PIL import Image
import os.path
file='D:/dogdog'
if 'jpg' in file[-4:]:
    im = Image.open(file)
    r, g, b, a = im.split()
    im = Image.merge("RGB", (r, g, b))
    os.remove(file)
    im.save(file[:-4] + ".jpg")

file = file[:-4] + ".jpg"

#修改图片文件大小jpgfile:图片文件;savedir:修改后要保存的路径'''
def convertjpg(jpgfile, savedir, width=1280, height=800):
    img = Image.open(jpgfile)
    new_img = img.resize((width, height), Image.BILINEAR)
    new_img.save(os.path.join(savedir, os.path.basename(jpgfile)))

#''查找给定路径下图片文件,并修改其大小'''
def modifyjpgSize(file, saveDir):
    for jpgfile in glob.glob(file):
        convertjpg(jpgfile, saveDir)


# 测试代码

saveDir = r'D:\dog2'
modifyjpgSize(file, saveDir)
posted @ 2021-12-20 13:20  了不起的奥特曼  阅读(550)  评论(0编辑  收藏  举报