python如何转换成jpg格式

python如何转换成jpg格式

作者:William Gu发布时间:2026-01-14阅读时长:0 分钟阅读次数:4

用户关注问题

Q
如何使用Python将图片文件转换为JPG格式?

我有一张图片文件,格式可能是PNG或BMP,想用Python将它转换成JPG格式,需要用哪些库或者方法?

A

用Python的Pillow库进行图片格式转换

可以使用Python的Pillow库(PIL的一个分支)来实现图片格式转换。首先用Image.open()打开图片,然后调用Image.save()时指定文件后缀为.jpg即可完成转换。示例代码如下:

from PIL import Image
img = Image.open('input.png')
img.convert('RGB').save('output.jpg', 'JPEG')

注意,转换成JPG时建议先调用convert('RGB'),这样可以避免保存过程中因为图片包含透明通道而出错。

Q
Python转换为JPG格式时需要注意什么?

我在用Python把图片转换成JPG格式,遇到了一些问题,想了解转换时需要注意的事项。

A

处理图片模式和透明通道是关键

JPG格式不支持透明通道,所以如果原图包含Alpha通道(如RGBA),必须先转换成不带透明通道的RGB模式,否则保存时会报错。使用Pillow时可以调用convert('RGB')去除透明通道。另外,JPG是有损压缩格式,转换时图片质量可能下降,可以通过save函数的quality参数调整压缩质量。

Q
有没有办法批量用Python将多个图片转换成JPG格式?

手头有很多不同格式的图片文件,想用Python批量转换成JPG格式,有什么推荐的做法?

A

循环遍历文件结合Pillow批量转换

可以利用Python的os库遍历指定文件夹内所有图片文件,然后用Pillow打开和保存成JPG格式。示例代码如下:

import os
from PIL import Image

input_folder = 'images/'
output_folder = 'jpg_images/'
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

for filename in os.listdir(input_folder):
    if filename.lower().endswith(('.png', '.bmp', '.gif')):
        img = Image.open(os.path.join(input_folder, filename))
        rgb_img = img.convert('RGB')
        new_name = os.path.splitext(filename)[0] + '.jpg'
        rgb_img.save(os.path.join(output_folder, new_name), 'JPEG')

这段代码会将所有指定格式的图片转换成JPG并保存在新文件夹中。