Python脚本批量创建有序长图,解决图片管理难题

需积分: 9 0 下载量 47 浏览量 更新于2024-09-02 收藏 2KB TXT 举报
批量创建长图是Python编程中常见的图像处理任务,尤其是在需要将多张图片按照某种顺序整合成一张大图时,尤其适用。在这个脚本中,主要使用了Python的PIL(Python Imaging Library)库来操作图像,并结合os库进行文件系统操作。以下是对这段代码的详细解析: 1. 导入所需库:`from PIL import Image` 和 `from os import listdir, os`,分别用于图像处理和操作系统级的文件操作。 2. 定义变量和路径: - `result_path_target`:目标图片保存的路径,这里设置为当前文件夹下每个子目录对应的图片长图保存位置。 - `cut_pictures`:存放待拼接图片的路径,根据子目录名动态获取。 - `num`:图片的命名编号,用于区分每张图片。 - `fileList`:通过`os.listdir()`获取一级目录下的所有子目录名称。 3. 遍历一级目录中的所有子目录:使用`for i in fileList`,通过`os.listdir(r'd:\ceshi\%s' % (i))`获取每个子目录中的图片。 4. 图片操作: - 使用列表推导式`ims = [Image.open(cut_pictures + '\\' + fn) for fn in a if fn.endswith(".jpg")]`打开所有`.jpg`格式的图片,并存储在`ims`列表中。 - 计算所有图片的宽度和高度,`width, height = ims[0].size`。 - 初始化一个列表`cd`用于存储每张图片的高度,用于计算总高度。 - 遍历图片,依次将图片添加到长图中,使用`result.paste(im, box=(0, height))`根据图片高度累加,`lj`记录累计高度,`c`用于索引图片。 5. 处理异常和未成功创建的长图:如果在尝试打开或保存图片时出现错误,使用`try-except`结构捕获异常并使用`continue`跳过,同时记录未成功创建的目录,这些信息会写入`d:\ceshi\记录.txt`文件中。 6. 保存长图:每完成一个子目录的图片拼接后,保存为`%s.jpg`格式的文件,其中`s`为编号`num`。 这段代码的主要功能是自动化地在给定的多文件夹中批量创建长图,通过逐个子目录遍历,确保图片按照正确的顺序排列,并在遇到问题时提供错误日志。这在处理大量图片时提高了效率,并避免了手动排序和处理可能出现的程序报错。