代码功能概述
该代码实现了一个将指定目录下各子目录中的图片合成为GIF动画的工具。用户可以设置每张图片在GIF中显示的时间间隔,还可选择是否统一图片尺寸。合成后的GIF动画将保存在各子目录内,文件名与子目录名相同。同时,代码开头会打印作者相关信息,并在每次处理完成后询问用户是否继续运行程序。
用户操作步骤
- 运行程序:启动代码后,程序首先会打印作者相关信息。
- 设置图片变换时间间隔:程序提示“设置每张图片变换的时间间隔可自行测试(单位秒)如0.5: ”,用户需输入一个数字作为每张图片在GIF中显示的时间间隔(单位为秒),程序会将其转换为毫秒。若输入不是有效数字,程序会提示重新运行并输入正确值。
- 输入目录路径:接着程序提示“请输入目录路径: ”,用户需输入包含子目录及图片的目录路径。程序会检查该路径是否存在且为有效目录,若不是,会提示重新运行并输入正确路径。
- 选择是否统一图片尺寸:程序询问“是否要统一图片尺寸?(Y/N): ”,用户输入
Y(不区分大小写)则需接着输入统一的图片宽度和高度(单位为像素);若输入其他字符,则不进行尺寸统一操作。若输入的尺寸不是有效整数,程序会提示重新运行并输入正确尺寸。 - 等待合成完成:程序会遍历指定目录下的所有子目录,在每个子目录中查找支持格式(能被
Image.SAVE识别的格式)的图片文件。若子目录中有图片文件,将这些图片转换为RGB模式,根据用户选择决定是否统一尺寸,然后合成为GIF动画并保存到该子目录,文件名与子目录名相同。若子目录中没有支持的图片文件,程序会提示并跳过该子目录。合成过程中,控制台会显示正在处理的子目录信息以及合成后的GIF保存路径。 - 决定是否继续:所有子目录处理完成后,程序提示“所有目录处理完成.”,并询问“是否要继续运行程序?(y/n): ”,若用户输入
y(不区分大小写),则可重复上述步骤处理其他目录;若输入其他字符,程序终止运行。
对子文件夹及穿透情况
代码使用os.listdir结合os.path.isdir来获取指定目录下的所有子目录,并对每个子目录进行处理,这表明它仅对指定目录下的直接子目录有效,不会穿透到子目录的子目录层级。例如,若指定目录下有子目录A,A下又有子目录A1,程序只会处理A目录中的图片,不会处理A1目录中的图片。
实例验证
假设存在以下文件夹及文件结构:
主文件夹
│
├── 文件夹 A
│ ├── img1.jpg
│ ├── img2.png
│ └── img3.bmp
├── 文件夹 B
│ ├── img4.jpeg
│ └── img5.gif
└── 文件夹 C
├── not_image.txt
└── sub_folder
├── img6.jpg
- 运行程序后,输入主文件夹路径作为目录路径。
- 输入图片变换时间间隔(如
0.5),选择统一图片尺寸并输入宽度和高度(如800)。 - 程序会处理文件夹A和文件夹B,将其中的图片转换为RGB模式、统一尺寸为800x800像素后合成为GIF动画,分别保存为
文件夹A/文件夹A.gif和文件夹B/文件夹B.gif,并在控制台显示处理信息。 - 文件夹C因不含支持格式的图片文件(
not_image.txt不是图片,sub_folder中的图片因程序不穿透子目录不会被处理),程序会提示并跳过该目录。 - 所有目录处理完成后,若用户选择继续运行程序,可再次输入不同的目录路径进行新一轮的图片合成GIF操作。
python版本:3.86
是否带UI界面:非UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 【01】0.38mmPVC名片报价
- 701-以文件名创建文件夹排除(1)序列将同名文件移入(支持穿透子孙文件夹)
- 714-批量按指定数量分割源文件夹下文件到目标文件夹下
- 722-批量获取指定文件夹下所有文件名或文件夹名或完整路径并写入txt
- 726-批量删除指定文件夹下及子孙文件夹下所有文件-不删除文件夹及空文件夹
- 755-批量根据excelA-B列内容移动文件夹到目标文件夹
- 756-对指定文件夹下文件及文件夹建立目录树-支持导出多种文件格式
- 781-按照创建日期-最后修改日期提取文件名到excell
- 784-批量搜索移动或复制指定文件夹下指定名称的指定格式的文件到指定文件夹
- 批量将pdf转为tiff格式-默认分辨率300-默认每页大小1.1




还没有评论,来说两句吧...