详解在Python中使用Pillow将图像转换为JPG格式

  • Post category:Python

当使用Python编写处理图像的程序时,Pillow 是一个很有用的图像处理库。这个库提供了许多功能,可以对图像进行解码、裁剪、缩放和转换等操作,图像格式也很丰富。本篇攻略将会详细讲解怎样在Python中使用Pillow库来将图像转换为JPEG/JPG格式,并给出两条示例说明。

安装Pillow

如果你还没有安装Pillow,可以通过pip命令来安装:

pip install Pillow

转换图像格式

在使用Pillow来处理图像之前,需要导入Pillow模块。导入方法如下:

from PIL import Image

首先,我们需要打开文件并进行操作。可以使用open() 方法来打开一个图像文件:

img = Image.open('example.png')

现在,可以使用 save() 方法将图像转换为其他格式。例如,下面的代码将把图像保存为JPEG格式:

img.save('example.jpg')

需要注意的是,如果你的图像是PNG格式,并且有透明度和alpha通道,那么在转换为JPEG格式时alpha通道会被忽略。因此,如果你需要保留alpha通道,请将图像转换为PNG格式。

示例1

下面来看一个简单的示例。假设我们有一张PNG格式的图像,我们要将它转换为JPG格式,并保存到本地。具体代码如下:

from PIL import Image

img = Image.open('example.png')
img = img.convert('RGB')
img.save('example.jpg')

这里使用 convert() 方法将图像的颜色模式由RGBA转换为RGB。由于JPG不支持透明度通道,因此需要先把图像转换为RGB模式,然后再将其保存为JPG格式。`

示例2

下面我们来看一个高级的示例,这里的目标是将一个文件夹中的所有PNG格式的图像转换为JPEG格式,并将它们保存到同一个文件夹中。待转换的PNG图像应该位于 ‘input’ 文件夹中,转换后的JPEG图像应该位于 ‘output’ 文件夹中。

import os
from PIL import Image

# 设置输入和输出文件夹
input_folder = 'input'
output_folder = 'output'

# 获取所有PNG格式的图像
png_images = [f for f in os.listdir(input_folder) if f.endswith('.png')]

for image_file in png_images:
    # 打开图像文件
    img = Image.open(os.path.join(input_folder, image_file))

    # 将颜色模式转换为RGB
    img = img.convert('RGB')

    # 保存为JPG格式,文件名与输入文件名相同,只是后缀名调整为.jpg
    jpg_filename = image_file.replace('.png', '.jpg')

    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 保存图像到输出文件夹中
    img.save(os.path.join(output_folder, jpg_filename))

这段代码首先获取所有以 ‘.png’ 结尾的文件,然后遍历它们并分别执行转换和保存操作。在进行保存操作时,它会替换文件名的后缀名称,然后将文件保存到输出文件夹中。如果输出文件夹不存在,它还会自动创建一个输出文件夹。

以上就是如何在Python中使用Pillow库来将图像转换为JPEG/JPG格式的完整攻略,两个示例都可以直接运行,希望对你有所帮助。