使用Pillow处理非JPEG图片时RGBA转JPEG报错的解决咨询
修复Pillow保存非JPEG图片为JPEG时的RGBA错误
你的代码里已经调用了convert('RGB'),但问题在于Image.convert()方法不会修改原图像对象,而是返回一个新的转换后的图像对象,你没有把这个新对象赋值给im,所以后续操作还是在原RGBA模式的图像上执行,导致保存JPEG时出错。
修改后的函数代码:
def resize_image(image, size): """Resizes image""" im = Image.open(image) # 将转换后的新图像对象赋值给im im = im.convert('RGB') im.thumbnail(size) thumb_io = BytesIO() im.save(thumb_io, 'JPEG', quality=85) thumbnail = File(thumb_io, name=image.name) return thumbnail
核心改动就是把im.convert('RGB')改成im = im.convert('RGB'),这样后续的thumbnail和save操作都是基于转换后的RGB模式图像,就能正常保存为JPEG格式了。
内容的提问来源于stack exchange,提问作者rolandist_scim
相关产品推荐
相关产品推荐

