代码功能概述
该代码实现了一个将指定目录及其子目录中的图片(非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使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 702-查找B文件夹下与A文件夹下同名文件并用A文件夹下文件替换
- 754-批量根据excelA-B列内容移动文件到目标文件夹
- 757-读取txt每行文件名移动指定文件到指定文件夹
- 763-批量删除整理多层文件夹冗余
- 769-批量删除文件名中的指定字符串
- 780-批量获取文件及文件夹信息导出到excell
- 782-批量移动指定文件夹A下所有文件到A文件夹根目录下
- 786-批量移动指定文件夹下文件到目标文件夹下同名文件夹内
- 使用docsify配合github搭建个人知识库
- 10082-1-批量解压压缩包-【支持子文件夹穿透】【不支持密码解压-多层嵌套压缩包解压】
- 1开通VIP会员享全站内容免费查看
- 2🔥🔥🔥常见问题 | 售后问题 | 程序购买 | 会员开通等问题
- 3752-批量复制文件及文件夹到多个文件夹
- 410081-1-批量解压自解压文件-【支持密码-子文件穿透】【不支持嵌套自解压或压缩包解压】-除自解压文件外不能有其他exe文件
- 5790-批量统计各文件夹下文件类型数量及文件夹路径输出到excell
- 6网页插入bilibili哔哩哔哩视频
- 7401-批量识别pdf中二维码并替换为指定图片或覆盖白色
- 8使用本站程序过程如果遇到问题请查看该文章说明
- 9431-批量合并指定文件夹下各文件夹内pdf为一个pdf文件
- 10【起步式】从python环境配置到使用AI写出第一个python程序(python版本3.86)
还没有评论,来说两句吧...