了解如何使用Python编写一个简单实用的图片压缩工具,它可以轻松压缩指定路径下的所有图片。通过该工具,您可以快速减小图片文件的大小,节省存储空间并提高网页加载速度。本文将介绍如何使用Python编写图片压缩工具,并演示了两种压缩方法,包括同类型压缩和转换为jpg格式进行压缩。跟随本文一起学习吧!
介绍
在现代社交媒体和网页设计中,图像是不可或缺的元素之一。然而,高分辨率的图片文件往往占用大量的存储空间,导致网页加载速度变慢,用户体验下降。为了解决这个问题,我们可以使用Python编写一个简单而实用的图片压缩工具,它能够快速压缩指定路径下的所有图片文件。
实现图片压缩工具的准备工作
在开始编写代码之前,我们需要安装Python的Pillow库,它提供了强大的图像处理功能。可以通过以下命令来安装Pillow库:
pip install pillow
安装完成后,我们可以开始编写代码来实现图片压缩工具。
Python代码实现
下面是使用Python编写的图片压缩工具代码:
import os
from PIL import Image
def compress_images(input_dir, output_dir, quality=80):
# 确保输出文件夹存在
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_dir):
file_path = os.path.join(input_dir, filename)
# 检查文件是否为图片
if not os.path.isfile(file_path) or not any(file_path.endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
continue
# 打开图像文件
with Image.open(file_path) as image:
# 压缩图像并保存到输出文件夹
output_path = os.path.join(output_dir, filename)
image.save(output_path, optimize=True, quality=quality)
print(f'Compressed: {output_path}')
# 指定输入和输出文件夹路径
input_folder = './' # 输入文件夹路径
output_folder = './output' # 输出文件夹路径
quality = 70 # 压缩等级 1-100
# 调用函数进行图片压缩
compress_images(input_folder, output_folder, quality)
以上代码使用了Python的os模块和Pillow库。首先,我们定义了一个compress_images
函数,它接受输入文件夹路径、输出文件夹路径和可选的压缩质量参数。在函数内部,我们通过遍历输入文件夹中的所有文件,筛选出扩展名为.jpg
、.jpeg
和.png
的图片文件。然后,我们使用Pillow库打开每个图片文件,并将其压缩保存到输出文件夹中。压缩后的图片文件保持原文件名。
不同类型转为jpg格式进行压缩
上面同类型进行压缩有时候并不能很好压缩图片,比如都是png格式,压缩后并没有减少多少体积,那么我们就需要进行转换为jpg格式压缩,能大大减少图片体积
import os
from PIL import Image
def compress_images(input_dir, output_dir, quality=80):
# 确保输出文件夹存在
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 遍历输入文件夹中的所有文件
for filename in os.listdir(input_dir):
file_path = os.path.join(input_dir, filename)
# 检查文件是否为图片
if not os.path.isfile(file_path) or not any(file_path.endswith(ext) for ext in ['.jpg', '.jpeg', '.png']):
continue
# 打开图像文件
with Image.open(file_path) as image:
# 压缩图像并保存到输出文件夹
output_path = os.path.join(output_dir, os.path.splitext(filename)[0] + '.jpg')
image.convert('RGB').save(output_path, optimize=True, quality=quality)
print(f'Compressed: {output_path}')
# 指定输入和输出文件夹路径
input_folder = './' # 输入文件夹路径
output_folder = './output' # 输出文件夹路径
quality = 40 # 压缩等级 1-100
# 调用函数进行图片压缩
compress_images(input_folder, output_folder, quality)
保存并运行脚本
将Python脚本保存,并在命令行中运行它:python compress_images.py
暂无评论内容