当前位置: 首页 > news >正文

批处理文件:用gifsicle删除gif文件中的奇数帧

对gif动画的操作有很多开源工具能做,gifscile是小巧的跨操作系统一款,英文手册可以参考这里。

原始的可执行文件功能有限,根据手册可以对其进行一些扩展。这里扩展的主要是批量删除其奇数帧、以缩小体积。——得到了一个近8MB的gif文件,但上传通常要求5MB以内。简单的想法,删除奇数帧,这样体积缩小大概一半(但播放质量大大下降),刚好满足要求,而且在不修改播放速度前提下播放速度自动加倍,两全其美。

下面是名为delodd.bat的批处理脚本文件(这是DOS年代很常用的;windows操作系统保留cmd.exe中仍然能够使用。)

@echo off
setlocal enabledelayedexpansion

if "%~1"=="" (
    echo A .gif file needed, Usage: delodd 2025.gif
    exit /b
)

set "input=%~1"
set "output=%~dpn1o.gif"
set "temp=output.gif"

:: 检查 gifsicle 是否安装
gifsicle --version >nul 2>&1
if errorlevel 1 (
    echo Please download gifsicle first!
    exit /b
)

:: 处理文件
copy /y "%input%" "%temp%" >nul

:: 获取总帧数
for /f "tokens=2" %%a in ('gifsicle --info "%input%" ^| find "images"') do set "total=%%a"

:: 循环删除奇数帧
set "frame=1"
:loop
for /f "tokens=2" %%b in ('gifsicle --info "%temp%" ^| find "images"') do set "current=%%b"
if !frame! gtr !current! goto done

echo Deleting frame No. !frame! of total frames

gifsicle "%temp%" --delete "#!frame!" -o "output_temp.gif"
move /y "output_temp.gif" "%temp%" >nul

set /a "frame+=1"
goto loop

:done
move /y "%temp%" "%output%"
echo Finished!Output gif is: "%output%"
gifsicle --info "%output%"

下面是我用gifsicle处理之后缩小到5MB以内的gif文件:
在这里插入图片描述
然而现实往往不以人们的想象为转移。其实还有一个小秘密,正如前面所述,删除奇数帧会导致动画播放图像质量严重下降,后来,我是用下面的方式修改的:

gifsicle 202580.gif --colors 32 -o 20258.gif

把256色改为32色,也成功缩小了原始gif文件体积到合适数值。

人工智能大语言模型聊天非常有想象力。然而,更期望的是,大语言模型能够像设想的那样容易沟通、能力又强。七嘴八舌适合娱乐、务虚。干活人。

另外可以改变每一帧delay时间:

gifsicle 20250.gif -d3 -o 202508.gif

在这里插入图片描述

相关文章:

  • 【快递分拣员-Git介绍】
  • elsticsearch 通过reindex修改shards
  • 使用crash解析vmcore(fulldump)文件,基于qemu,arm64,linux6.6
  • 社区医疗管理系统基于Spring Boot SSM
  • Trae如何使用插件Mybatis Log MybatisX转换SQL语句?
  • 分裂层次聚类算法:从原理到实战的全方位解析
  • Java-模块一
  • Controller/RestController的区别
  • 支持多个和可选参数
  • 【WPF】c#读取CAD的dxf文件,并基于Canvas将读取到的数据重新描绘到界面
  • Unity URP 实现场景和UI添加后处理
  • Java 反射详细教程
  • 数据可视化(matplotlib)-------辅助图标的设置
  • 早餐 3.20
  • 笔记:代码随想录算法训练营day57:99.岛屿数量 深搜、岛屿数量 广搜、100.岛屿的最大面积
  • ssh连接解析时间过长如何解决
  • 模块、包和库
  • 【day16】搭建测试环境数据库
  • uni-app基础问题(一)
  • SysOM 可观测体系建设(一):万字长文解读低开销、高精度性能剖析工具livetrace
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 多少Moreless:向世界展示现代中式家具的生活美学
  • 新华时评:博物馆正以可亲可近替代“高冷范儿”
  • 河南一县政府党组成员签订抵制违规吃喝问题承诺书,现场交给县长
  • 李成钢出席中国与《数字经济伙伴关系协定》成员部级会议
  • 华东政法与复旦上医签署合作框架协议,医学与法学如何交叉融合?