一、批量图片压缩器的原理
批量图片压缩器的原理主要包括以下几个方面:
- 遍历文件夹:遍历指定文件夹中的所有图片文件。
- 判断图片类型:根据图片文件的扩展名判断图片类型,如.jpg、.png、.gif等。
- 压缩图片:对不同类型的图片进行相应的压缩操作。
- 输出结果:将压缩后的图片输出到指定文件夹或显示在控制台。
二、PIL库的使用方法
PIL(Pillow)是一个图像处理库,用于处理图像、屏幕截图和图像编辑。PIL库提供了丰富的API,可以用于创建、编辑和处理图像。
- 安装PIL库
首先,需要安装PIL库。可以使用pip命令进行安装:
pip install pillow
- 导入PIL库
在Python代码中,需要导入PIL库:
from PIL import Image
- 打开图片
PIL库提供了打开图片的功能,可以通过以下方法打开图片:
image = Image.open('example.jpg')
- 调整图片大小
PIL库提供了调整图片大小的功能,可以通过以下方法调整图片大小:
image = image.resize((new_width, new_height))
- 保存图片
调整大小后的图片可以通过PIL库保存为多种格式,如JPEG、PNG、GIF等。 - 显示图片
PIL库还提供了显示图像的功能,可以通过以下方法显示调整大小后的图片:
image.show()
三、用Python实现一个简单的批量图片压缩器
下面是一个使用Python和PIL库实现简单批量图片压缩器的示例:
import os
from PIL import Image
def compress_image(image_path, output_path):
# 打开图片
image = Image.open(image_path)
# 调整图片大小
image = image.resize((int(image.width * 0.5), int(image.height * 0.5)))
# 保存图片
image.save(output_path)
def compress_images(folder_path, output_folder_path):
# 创建输出文件夹
if not os.path.exists(output_folder_path):
os.makedirs(output_folder_path)
# 遍历文件夹
for root, dirs, files in os.walk(folder_path):
for file in files:
# 获取文件完整路径
file_path = os.path.join(root, file)
# 判断文件类型
if file.endswith('.jpg') or file.endswith('.png') or file.endswith('.gif'):
# 压缩图片
compress_image(file_path, os.path.join(output_folder_path, file))
if __name__ == '__main__':
# 指定源文件夹路径
source_folder_path = 'path/to/source/folder'
# 指定输出文件夹路径
output_folder_path = 'path/to/output/folder'
# 压缩图片
compress_images(source_folder_path, output_folder_path)
这个示例定义了两个函数,compress_image()
用于压缩单个图片,compress_images()
用于遍历指定文件夹中的所有图片文件并调用compress_image()
函数进行压缩。在主函数中,首先指定源文件夹路径和输出文件夹路径,然后调用compress_images()
函数进行批量图片压缩。