- N +

10089-5-1-20231103批量将图片分别转换为webpg动态图片-第一帧为原来图片保持显示24小时-第二桢为黑色【源代码】

10089-5-1-20231103批量将图片分别转换为webpg动态图片-第一帧为原来图片保持显示24小时-第二桢为黑色【源代码】原标题:10089-5-1-20231103批量将图片分别转换为webpg动态图片-第一帧为原来图片保持显示24小时-第二桢为黑色【源代码】

导读:

代码功能概述该代码实现了一个将指定目录及其子目录中的图片(非WebP格式且非特别长的图)转换为WebP格式动图的工具。对于每张符合条件的图片,生成的WebP动图包含三帧:第一...

代码功能概述

该代码实现了一个将指定目录及其子目录中的图片(非WebP格式且非特别长的图)转换为WebP格式动图的工具。对于每张符合条件的图片,生成的WebP动图包含三帧:第一帧为原始图片,第二帧为黑色背景图片,第三帧又是原始图片的复制。每帧设置了不同的显示持续时间,第一二帧各停留200毫秒,第三帧停留24小时。转换完成后,原图片会被删除。代码还配置了日志记录转换过程中的错误信息,并屏蔽了一些警告信息。代码开头打印作者相关信息,每次处理完指定目录的图片后,会询问用户是否继续运行程序以处理其他目录。

用户操作步骤

  1. 运行程序:启动代码后,首先看到作者相关信息。
  2. 输入目录路径:程序提示“请输入包含图片的目录路径: ”,用户需要输入包含图片的目录路径。程序会检查该路径是否存在且为有效目录,如果不符合要求,会提示重新输入并继续等待输入。
  3. 等待转换完成:程序遍历指定目录及其所有子目录,跳过已有的WebP格式文件和非图片文件,以及特别长的图片(高度大于宽度三倍的图片)。对于符合条件的图片,先将其转换为RGB模式,然后缩放至最大尺寸为1200像素。接着创建包含三帧的WebP动图,按照设定的持续时间保存。转换后的WebP动图保存在原图片所在的文件夹,文件名与原图片文件名相同,只是扩展名变为.webp。转换完成后删除原图片。处理过程中,控制台会显示正在处理的图片文件名、处理完成信息及保存路径。如果处理过程中发生错误,会在控制台提示已跳过,并将错误信息记录到webp_conversion_log.txt日志文件中。所有图片处理完成后,显示“所有图片处理完成.”。
  4. 决定是否继续:程序最后询问“是否要继续运行程序?(y/n): ”,若用户输入y(不区分大小写),可重复上述步骤处理其他目录;若输入其他字符,程序终止运行。

对子文件夹及穿透情况

代码使用os.walk函数遍历abs_input_directory,这表明它不仅对主文件夹有效,还能穿透主文件夹下的所有子文件夹,对其中符合条件的图片进行转换操作。

实例验证

假设存在以下文件夹及文件结构: 

主文件夹
│
├── 文件夹 A
│ ├── img1.jpg
│ ├── img2.png
│ └── img3.webp
├── 文件夹 B
│ ├── img4.bmp
│ └── long_img.jpg (高度大于宽度三倍)
  1. 运行程序后,输入主文件夹路径。
  2. 程序会遍历主文件夹及其子文件夹,跳过img3.webplong_img.jpg。将img1.jpgimg2.png转换为WebP动图,分别保存为img1.webpimg2.webp,并删除原图片。处理过程中,控制台会显示相应的处理信息。如果处理img1.jpgimg2.png时发生错误,会在控制台提示并记录到日志文件中。
  3. 处理完成后,若用户选择继续运行程序,可再次输入不同的目录路径进行新一轮的图片转换操作。

python版本:3.86

是否带UI界面:非UI版本

电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)

脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮

重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能


查看源代码

隐藏内容,开通会员可免费查看!
售价:100 
月度会员 免费查看
开通会员
开通月度会员或更高级的会员可免费查看该内容

登录注册购买      开通会员免费查看

  • 随机文章
  • 热门文章

收藏本文章

作者:softbangong
使用批处理解放双手,使用softbangong一直赢。 学无止境,精准有效方为上上策。 softbangong你的贴身助手!
返回列表
上一篇:
下一篇:
您需要 登录账户 后才能发表评论

发表评论取消回复中国互联网举报中心

快捷回复:

验证码

    评论列表 (暂无评论,共9人参与)参与讨论

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