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

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')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容