Python批量处理图片方案

在数字图像处理领域,Python 因其丰富的库和易用性成为了一个非常受欢迎的工具。本文将介绍如何使用 Python 来批量处理图片,例如调整大小、裁剪、旋转等操作。我们将以一个具体的问题为例:批量调整图片大小。

环境准备

首先,确保你的环境中安装了 Python。然后,我们需要安装一些处理图片的库,如 PIL(Pillow)和 numpy。可以通过 pip 安装:

pip install pillow numpy

图片批量处理流程

批量处理图片通常包括以下步骤:

  1. 读取图片:从文件夹中读取所有图片。
  2. 处理图片:对每张图片执行所需的操作。
  3. 保存图片:将处理后的图片保存到指定文件夹。

代码实现

以下是使用 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 类,添加更多的图片处理功能,如裁剪、旋转、滤镜等。希望本文对你有所帮助!