用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。你可以根据实际需求修改这些参数。
在运行代码之后,你将看到压缩前后的文件大小打印在控制台上。
这样,我们就完成了一个简单的图片压缩工具的实现。你可以根据自己的需求或项目的需求进行进一步的定制和改进。
