python如何把png图片转jpg
在 Python 中将 PNG 图片转换为 JPG 格式,可以使用 PIL
库(Pillow)实现。以下是完整代码示例:
from PIL import Image
import osdef convert_png_to_jpg(png_path, jpg_path=None):"""将PNG图片转换为JPG格式:param png_path: 输入的PNG文件路径:param jpg_path: 输出的JPG文件路径(可选,默认同输入路径但扩展名改为.jpg)"""# 设置默认输出路径if jpg_path is None:jpg_path = os.path.splitext(png_path)[0] + ".jpg"try:# 打开PNG图片with Image.open(png_path) as img:# 转换颜色模式:RGBA -> RGB(去除透明通道)rgb_img = img.convert("RGB")# 保存为JPG格式rgb_img.save(jpg_path, format="JPEG", quality=95)print(f"转换成功:{png_path} -> {jpg_path}")return Trueexcept Exception as e:print(f"转换失败: {str(e)}")return False# 使用示例
if __name__ == "__main__":input_png = "input.png" # 替换为你的PNG文件路径output_jpg = "output.jpg" # 自定义输出路径# 执行转换convert_png_to_jpg(input_png, output_jpg)
关键点说明:
-
依赖安装:先安装Pillow库
pip install pillow
-
颜色模式转换:PNG支持RGBA(带透明通道),而JPG不支持透明通道,必须转换为RGB模式
-
质量控制:
quality=95
表示高质量压缩(0-100范围,默认75) -
文件路径处理:
- 默认输出路径与输入路径相同(扩展名改为.jpg)
- 可通过参数自定义输出路径
-
异常处理:捕获了文件读取错误、格式错误等常见异常
注意事项:
- 确保输入文件是有效的PNG格式
- 输出目录需要写权限
- 大尺寸图片转换时注意内存占用
- 转换后透明背景会变为黑色(可通过预处理修改背景色)
如果需要批量处理文件夹中的所有PNG文件,可以使用以下扩展代码:
def batch_convert(folder_path):for filename in os.listdir(folder_path):if filename.lower().endswith(".png"):input_path = os.path.join(folder_path, filename)output_path = os.path.join(folder_path, os.path.splitext(filename)[0] + ".jpg")convert_png_to_jpg(input_path, output_path)