在使用PIL模块保存图像时,报了个错误“cannot write mode P as JPEG”,这里P表示原始的图像是8位像素,另外也有错误涉及到“RGBA”格式。问题在于直接save的时候图片模式不是“RGB”,需要先将图片转成“RGB”模式才可以正常保存。
from PIL import Image
image_path = '001.jpg'
image = Image.open(image_path)
if image.mode == 'P' or image.mode == 'RGBA':
image = image.convert('RGB')
save_path = '001_new.jpg'
image.save(save_path)
涉及到的图片模式有如下几种:
模式
------------------------------------------------
1 1位像素,黑和白,存成8位的像素
L 8位像素,黑白
P 8位像素,使用调色板映射到任何其他模式
RGB 3×8位像素,真彩
RGBA 4×8位像素,真彩+透明通道
CMYK 4×8位像素,颜色隔离
YCbCr 3×8位像素,彩色视频格式
I 32位整型像素
F 32位浮点型像素