代码功能概述
该代码实现了一个将指定目录及其子目录中的图片(非WebP格式且非特别长的图)转换为WebP格式动图的工具。对于每张符合条件的图片,生成的WebP动图包含三帧:第一帧为原始图片,第二帧为黑色背景图片,第三帧又是原始图片的复制。每帧设置了不同的显示持续时间,第一二帧各停留200毫秒,第三帧停留24小时。转换完成后,原图片会被删除。代码还配置了日志记录转换过程中的错误信息,并屏蔽了一些警告信息。代码开头打印作者相关信息,每次处理完指定目录的图片后,会询问用户是否继续运行程序以处理其他目录。
用户操作步骤
- 运行程序:启动代码后,首先看到作者相关信息。
- 输入目录路径:程序提示“请输入包含图片的目录路径: ”,用户需要输入包含图片的目录路径。程序会检查该路径是否存在且为有效目录,如果不符合要求,会提示重新输入并继续等待输入。
- 等待转换完成:程序遍历指定目录及其所有子目录,跳过已有的WebP格式文件和非图片文件,以及特别长的图片(高度大于宽度三倍的图片)。对于符合条件的图片,先将其转换为RGB模式,然后缩放至最大尺寸为1200像素。接着创建包含三帧的WebP动图,按照设定的持续时间保存。转换后的WebP动图保存在原图片所在的文件夹,文件名与原图片文件名相同,只是扩展名变为
.webp。转换完成后删除原图片。处理过程中,控制台会显示正在处理的图片文件名、处理完成信息及保存路径。如果处理过程中发生错误,会在控制台提示已跳过,并将错误信息记录到webp_conversion_log.txt日志文件中。所有图片处理完成后,显示“所有图片处理完成.”。 - 决定是否继续:程序最后询问“是否要继续运行程序?(y/n): ”,若用户输入
y(不区分大小写),可重复上述步骤处理其他目录;若输入其他字符,程序终止运行。
对子文件夹及穿透情况
代码使用os.walk函数遍历abs_input_directory,这表明它不仅对主文件夹有效,还能穿透主文件夹下的所有子文件夹,对其中符合条件的图片进行转换操作。
实例验证
假设存在以下文件夹及文件结构:
主文件夹
│
├── 文件夹 A
│ ├── img1.jpg
│ ├── img2.png
│ └── img3.webp
├── 文件夹 B
│ ├── img4.bmp
│ └── long_img.jpg (高度大于宽度三倍)
- 运行程序后,输入主文件夹路径。
- 程序会遍历主文件夹及其子文件夹,跳过
img3.webp和long_img.jpg。将img1.jpg和img2.png转换为WebP动图,分别保存为img1.webp和img2.webp,并删除原图片。处理过程中,控制台会显示相应的处理信息。如果处理img1.jpg或img2.png时发生错误,会在控制台提示并记录到日志文件中。 - 处理完成后,若用户选择继续运行程序,可再次输入不同的目录路径进行新一轮的图片转换操作。
python版本:3.86
是否带UI界面:非UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 热评文章
- 1722-批量获取指定文件夹下所有文件名或文件夹名或完整路径并写入txt
- 2764-删除空文件夹-多层文件夹精简夹
- 3766-移动带有关键字文件到指定文件夹
- 4783-对象为文件夹-以关键词创建文件夹-查找指定目录下带有关键词的文件夹-移动到创建的文件夹去
- 5787-批量判断指定文件夹下文件的真实文件类型并修改
- 6批量复制指定文件夹下文件夹结构到目标文件夹内
- 7pdf导出excell提取表格无框线处理逻辑
- 820250108-批量将指定文件夹A下每个文件夹下文件平均随机分配到目标文件夹下各一级文件夹内
- 910082-2-批量解压压缩包-【支持子文件夹穿透-带密码的压缩包】【不支持多层嵌套压缩包】
- 1010083-批量解压rar分卷文件-txt中一行一个密码-自动匹配-解压完成后可选删除分卷





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