美文网首页
Python识别图像格式并转码(支持webp格式)

Python识别图像格式并转码(支持webp格式)

作者: 乂尤先生 | 来源:发表于2021-08-06 11:30 被阅读0次

    Python识别图像格式并转码(支持webp格式)

    前言:

    利用Python采集下来的图片后缀和图片真实格式不一样,比如采集下来保存为test.jpg,但通过其他方式打开图片格式其实是webp

    图片识别格式及转码

    from PIL import Image
    
    img_path = 'test.jpg'
    im = Image.open(img_path,'r')
    #如果是服务器不支持的webp格式转化为jpeg格式
    if im.format == 'WEBP':
        im.save(img_path,'JPEG')
    

    注意:

    图片转码时可能会报错:OSError: cannot write mode RGBA as JPEG

    报错原因:

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

    解决:

    方法一:

    im = im.convert('RGB')
    im.save('test.jpg')
    

    方法二:

    im.save('test.jpg')
    

    完整代码:

    from PIL import Image
    
    img_path = 'test.jpg'
    im = Image.open(img_path,'r')
    #如果是服务器不支持的webp格式转化为jpeg格式
    if im.format == 'WEBP':
        
        if im.mode == 'RGBA':
            im = im.convert('RGB')
            im.save(srcfile, 'JPEG')
        im.save(img_path,'JPEG')
    

    相关文章

      网友评论

          本文标题:Python识别图像格式并转码(支持webp格式)

          本文链接:https://www.haomeiwen.com/subject/gmgzeltx.html