详解如何使用Python和PIL来压缩图像

  • Post category:Python

使用Python和PIL来压缩图像可以通过调整图像的大小和质量来实现。以下是详细的步骤:

1. 安装PIL库

PIL是Python中一个用于图像处理的库,我们可以使用pip命令来安装它:

pip install Pillow

2. 打开图像

使用PIL库中的Image.open()方法来打开图像,例如:

from PIL import Image

img = Image.open("example.jpg")

3. 调整图像大小

可以使用Image.resize()方法来调整图像的大小。这个方法需要一个新的大小作为参数。例如,我们将图像调整为原始大小的一半:

new_size = (img.width // 2, img.height // 2)

resized_img = img.resize(new_size)

4. 调整图像质量

可以使用Image.save()方法来保存调整后的图像,并可以通过设置quality参数来调整图像的质量。quality参数的值可以在0到100之间,100表示最高质量。例如,我们将图像质量降低到50:

resized_img.save("example_compressed.jpg", quality=50)

示例1:压缩单张图像

下面是一个将一张图像压缩的示例:

from PIL import Image

img = Image.open("example.jpg")

new_size = (img.width // 2, img.height // 2)

resized_img = img.resize(new_size)

resized_img.save("example_compressed.jpg", quality=50)

示例2:批量压缩图像

下面是一个批量压缩文件夹中所有图像的示例:

import os
from PIL import Image

path = "./images"

for filename in os.listdir(path):
    if not filename.endswith(".jpg"):
        continue

    img = Image.open(os.path.join(path, filename))

    new_size = (img.width // 2, img.height // 2)

    resized_img = img.resize(new_size)

    compressed_filename = os.path.join(path, f"{os.path.splitext(filename)[0]}_compressed.jpg")

    resized_img.save(compressed_filename, quality=50)

以上就是使用Python和PIL来压缩图像的完整攻略,希望能帮助到你!