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')
网友评论