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

Python实现一个简单的图片压缩工具

发布时间:2023-12-04 17:39:21

要实现一个简单的图片压缩工具,我们可以使用Python的PIL库(Python Imaging Library)来处理图片。

首先,我们需要安装Pillow库,Pillow是PIL的一个分支,使用以下命令安装Pillow库:

pip install pillow

然后,我们可以使用以下代码创建一个简单的图片压缩函数:

from PIL import Image
import os

def compress_image(input_path, output_path, max_size=1024):
    image = Image.open(input_path)
    
    # 如果图片尺寸小于指定的最大尺寸,则不进行压缩
    if image.size[0] <= max_size and image.size[1] <= max_size:
        image.save(output_path)
        return
    
    # 根据指定的最大尺寸计算压缩比例
    ratio = max(image.size[0] / max_size, image.size[1] / max_size)
    
    # 根据压缩比例重新计算图片尺寸
    new_size = (int(image.size[0] / ratio), int(image.size[1] / ratio))
    
    # 使用ANTIALIAS方式进行图片压缩
    image.thumbnail(new_size, Image.ANTIALIAS)
    
    # 保存压缩后的图片
    image.save(output_path)

上述代码中,compress_image函数接受输入图片路径input_path、输出图片路径output_path以及最大尺寸max_size作为参数。

首先,我们打开输入图片,如果输入图片尺寸小于等于最大尺寸,则直接保存输出图片并返回。否则,我们根据最大尺寸计算压缩比例,然后根据压缩比例计算新的图片尺寸。利用Image.thumbnail方法进行图片压缩,并使用Image.save保存压缩后的图片。

接下来,我们可以使用以下代码来调用压缩函数并进行测试:

input_path = "input.jpg"
output_path = "output.jpg"
max_size = 1024

compress_image(input_path, output_path, max_size)

在上述代码中,我们指定了输入图片路径input_path和输出图片路径output_path,同时设置了最大尺寸max_size为1024。然后调用compress_image函数进行图片压缩。

运行以上代码后,会将input.jpg图片压缩成最大尺寸为1024的图片,并保存为output.jpg

需要注意的是,这只是一个非常简单的图片压缩工具示例,并没有考虑更多的压缩选项和细节。在实际使用中,可以根据需求对代码进行扩展和改进。