欢迎访问宙启技术站
智能推送

利用Python的ImageFile()函数实现图像文件的批量操作

发布时间:2023-12-15 13:05:19

Python的ImageFile()函数是Python Imaging Library(PIL)中的一个类,它提供了图像文件的读取、处理和存储的功能。使用ImageFile()函数可以方便地进行图像文件的批量操作,比如批量修改图片的大小、格式、旋转或者添加水印等。

首先,我们需要安装PIL库。在命令行中执行以下命令可以安装PIL库:

pip install pillow

安装完成后,我们就可以在Python程序中导入必要的库模块并使用ImageFile()函数进行图像文件的批量操作了。

下面是一个使用ImageFile()函数实现图像文件的批量操作的示例代码:

from PIL import Image, ImageFile
import os

def resize_images(input_folder, output_folder, size):
    # 遍历输入文件夹中的所有图片文件
    for filename in os.listdir(input_folder):
        if filename.endswith(".jpg") or filename.endswith(".png"):
            # 构造输入和输出文件的完整路径
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, filename)
            
            # 使用ImageFile库读取图片文件
            with Image.open(input_path) as img:
                # 修改图片大小
                resized_img = img.resize(size)
                
                # 保存修改后的图片到输出文件夹中
                resized_img.save(output_path)

# 设置输入文件夹和输出文件夹的路径
input_folder = "input"
output_folder = "output"

# 设置修改后的图片大小
size = (500, 500)

# 调用函数进行批量操作
resize_images(input_folder, output_folder, size)

在上述示例代码中,我们首先导入了Image和ImageFile两个模块,并引入了os模块用于处理文件路径。然后,我们定义了一个名为resize_images的函数,该函数接受输入文件夹路径、输出文件夹路径和图像大小作为参数。

在resize_images函数中,我们首先使用os模块的listdir函数遍历输入文件夹中的所有图片文件。然后,我们使用ImageFile库的open函数读取每个图片文件,并使用Image库的resize函数修改图片大小。最后,我们使用save函数将修改后的图片保存到输出文件夹中。

最后,在主程序中,我们设置了输入文件夹和输出文件夹的路径,并设置了修改后的图片大小。然后,我们调用resize_images函数进行批量操作。

需要注意的是,为了能够正常处理图片文件,我们需要将图片文件放在input文件夹中,并创建一个空的output文件夹。执行程序后,修改后的图片将保存在output文件夹中。

通过以上的示例代码,我们可以很方便地使用Python的ImageFile()函数实现图像文件的批量操作,比如修改图片的大小等。除了修改大小,ImageFile()函数还提供了其他很多功能,比如旋转、添加水印等,具体的用法可以参考PIL库的官方文档。