You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python Pillow将灰度JPEG转为RGB并保留原有图像质量?

问题原因

Pillow的Image.save()方法保存JPEG格式文件时默认使用75的质量参数,不会自动继承原文件的质量配置,这是转换后画质下降的核心原因。

解决方法

你只需要在保存时显式传入原图的质量参数即可,完整代码如下:

from PIL import Image

# 读取灰度原图
gray = Image.open("gray.JPEG")
# 从原图属性中提取质量参数,取不到时兜底用95
orig_quality = gray.info.get("quality", 95)
# 转换为RGB三通道格式
rgb = gray.convert("RGB")
# 保存时传入原质量参数,开启optimize优化不损失画质
rgb.save("rgb.JPEG", quality=orig_quality, optimize=True)

进阶优化(可选)

如果需要更严格对齐原文件的压缩配置,还可以一并传入原图的量化表进一步降低画质损耗:

from PIL import Image

gray = Image.open("gray.JPEG")
orig_quality = gray.info.get("quality", 95)
orig_quant = gray.info.get("quantization")
rgb = gray.convert("RGB")

save_kwargs = {"quality": orig_quality, "optimize": True}
if orig_quant:
    save_kwargs["quantization"] = orig_quant

rgb.save("rgb.JPEG", **save_kwargs)

修改后保存的文件用jhead查询即可看到质量参数和原图一致,画质基本无损耗。

内容的提问来源于stack exchange,提问作者user650654

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:06:00