Python批量处理图片方案
在数字图像处理领域,Python 因其丰富的库和易用性成为了一个非常受欢迎的工具。本文将介绍如何使用 Python 来批量处理图片,例如调整大小、裁剪、旋转等操作。我们将以一个具体的问题为例:批量调整图片大小。
环境准备
首先,确保你的环境中安装了 Python。然后,我们需要安装一些处理图片的库,如 PIL(Pillow)和 numpy。可以通过 pip 安装:
pip install pillow numpy
图片批量处理流程
批量处理图片通常包括以下步骤:
- 读取图片:从文件夹中读取所有图片。
- 处理图片:对每张图片执行所需的操作。
- 保存图片:将处理后的图片保存到指定文件夹。
代码实现
以下是使用 Python 和 Pillow 库实现批量调整图片大小的示例代码。
from PIL import Image
import os
import numpy as np
class ImageProcessor:
def __init__(self, input_folder, output_folder, size=(128, 128)):
self.input_folder = input_folder
self.output_folder = output_folder
self.size = size
def process_images(self):
for filename in os.listdir(self.input_folder):
if filename.endswith(".jpg") or filename.endswith(".png"):
self.process_image(filename)
def process_image(self, filename):
img_path = os.path.join(self.input_folder, filename)
img = Image.open(img_path)
resized_img = img.resize(self.size)
output_path = os.path.join(self.output_folder, filename)
resized_img.save(output_path)
def main():
input_folder = 'path/to/input/folder'
output_folder = 'path/to/output/folder'
processor = ImageProcessor(input_folder, output_folder)
processor.process_images()
if __name__ == "__main__":
main()
类图
以下是 ImageProcessor
类的类图,展示了其属性和方法。
classDiagram
class ImageProcessor {
+input_folder : str
+output_folder : str
+size : tuple
__init__(input_folder : str, output_folder : str, size : tuple)
process_images()
process_image(filename : str)
}
代码解释
ImageProcessor
类初始化时接收输入和输出文件夹路径以及图片大小。process_images
方法遍历输入文件夹中的所有图片文件,并调用process_image
方法处理每张图片。process_image
方法读取图片,调整大小,然后保存到输出文件夹。
结尾
通过上述方案,你可以轻松实现图片的批量处理。Python 的灵活性和强大的库支持使得这一任务变得简单。你可以根据需要扩展 ImageProcessor
类,添加更多的图片处理功能,如裁剪、旋转、滤镜等。希望本文对你有所帮助!