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

  • Post category:Python

使用Python和PIL(Python Imaging Library)来压缩图像的方法如下:

安装PIL库

首先需要安装PIL库。可以通过以下命令来安装:

pip install Pillow

图像压缩

使用PIL库中的Image.open()函数来打开图像。使用save()函数来保存压缩后的图像。

以下是一个简单的示例程序:

from PIL import Image

# 打开图片
image = Image.open('test.jpg')

# 将图片压缩
image.save('compressed.jpg', optimize=True, quality=50)

在这个示例程序中,我们使用了Image.open()函数来打开了一个名为test.jpg的图像文件。我们接着使用save()函数来保存压缩后的图像到compressed.jpg文件中。

其中quality参数表示图片的质量,可取值范围为0-100,最高质量为100,最低质量为0。optimize参数表示是否启用压缩优化,设置为True会使得压缩更加优化。

还有另一个使用可选参数进行图像压缩的示例程序。使用参数quality指定压缩程度,并使用参数height控制图片高度。如果同时指定了宽度和高度,则图片大小将被缩放以适应指定的宽度和高度。

以下代码演示了如何使用这些参数进行图像压缩:

from PIL import Image

# 打开图片
image = Image.open('test.jpg')

# 将图片压缩
new_height = 500  # 指定图片高度
quality = 20  # 指定压缩质量
new_width = int(new_height * image.width / image.height)  # 根据比例计算图片宽度
resized_image = image.resize((new_width, new_height))  # 重新调整图片大小
resized_image.save('compressed.jpg', optimize=True, quality=quality) # 保存压缩后的图片

在这个示例程序中,我们首先使用Image.open()函数来打开了一个名为test.jpg的图像文件。我们先将图片高度设定为500像素,并使用此高度计算出比例,并从而将图像的宽度进行了相应调整。在这个示例程序中,我们将图片的压缩质量设置为20,注重了图片大小而没有注重图片质量的高度,最后调用save()函数来保存压缩后的图像。