欢迎访问宙启技术站
智能推送

用Python编写一个简单的图片压缩工具

发布时间:2023-12-04 08:04:06

图片压缩是一种常见的技术,用于减小图片文件的大小,以节省存储空间或加快图片加载速度。在Python中,我们可以使用PIL库来实现对图片的压缩。

首先,确保你已经安装了PIL库。你可以使用以下命令来安装它:

pip install pillow

接下来,我们将编写一个简单的图片压缩工具。下面是一个示例代码:

from PIL import Image
import os

def compress_image(input_path, output_path, max_size):
    # 打开图片
    image = Image.open(input_path)

    # 获取图片的原始大小
    width, height = image.size

    # 计算压缩比例
    ratio = max(width / max_size, height / max_size)

    # 计算压缩后的新大小
    new_width = int(width / ratio)
    new_height = int(height / ratio)

    # 压缩图片
    new_image = image.resize((new_width, new_height), Image.ANTIALIAS)

    # 保存压缩后的图片
    new_image.save(output_path)

    # 输出压缩前后的文件大小
    old_size = os.path.getsize(input_path)
    new_size = os.path.getsize(output_path)
    print(f"压缩前大小: {old_size} bytes")
    print(f"压缩后大小: {new_size} bytes")

# 使用示例
input_path = "input.jpg"  # 输入图片路径
output_path = "output.jpg"  # 输出图片路径
max_size = 1024  # 最大尺寸

compress_image(input_path, output_path, max_size)

在这个示例中,我们首先导入了Image类和os模块。然后,我们定义了一个compress_image函数,接受输入图片路径input_path,输出图片路径output_path和最大尺寸max_size作为参数。

在函数内部,我们打开输入图片,并获取其原始大小。然后,根据最大尺寸计算压缩比例,并根据比例计算压缩后的新尺寸。接下来,我们使用resize方法来压缩图片,并使用save方法保存压缩后的图片。

最后,我们使用os.path.getsize函数获取压缩前后的文件大小,并输出到控制台。

在使用示例中,我们指定了输入图片路径为input.jpg,输出图片路径为output.jpg,最大尺寸为1024。你可以根据实际需求修改这些参数。

在运行代码之后,你将看到压缩前后的文件大小打印在控制台上。

这样,我们就完成了一个简单的图片压缩工具的实现。你可以根据自己的需求或项目的需求进行进一步的定制和改进。