dongtu:在 Agent 里按规范做 GIF 动图生成

前言

做演示、写文档或发社区内容时,经常要把一组截图、一段视频或录屏收成 GIF。自己查 Pillow、imageio、FFmpeg 参数再拼脚本,步骤分散,Agent 也容易漏掉帧率、循环或缩放细节。下面介绍 SkillHub 社区 Skill dongtu:把「图片合成 GIF、视频截取转 GIF、屏幕录制转 GIF」等流程写进通用 SKILL.md,装好后由 Agent 按同一套说明执行。

这是什么

dongtu(坐标 @user_fe9f5f41/jm-jsjkxyjs01-llx-146,当前版本 1.0.0)是发布者 user_fe9f5f41 在 SkillHub 上架的社区来源(community)Skill,分类为 design-media,子类为 图片生成(design-image-gen)。包内核心是名为「GIF 动图生成技能」的 SKILL.md:用 Python 将图片序列、视频或屏幕录制转换为 GIF 动图。标签标明 requires_api_key=false,不依赖外部 API Key。

官方页面与安装入口:

  • SkillHub:https://www.skillhub.cn/skills/user_fe9f5f41/jm-jsjkxyjs01-llx-146
  • 官方地址:https://api.skillhub.cn/user_fe9f5f41/jm-jsjkxyjs01-llx-146

截至页面与抓取数据,该 Skill 下载约 778 次,SkillHub 评分 100000,安装计数为 0(以 SkillHub 统计为准)。

核心功能

以下内容均来自 Skill 包内 SKILL.md(v1.0.0),Agent 被触发后会按其中步骤与代码示例操作。

环境依赖

Skill 要求本地 Python 环境,并安装:

pip install pillow imageio imageio-ffmpeg numpy

视频相关能力依赖 imageio-ffmpeg;文档另给出用系统 ffmpeg 命令行转 GIF 的示例(需本机已安装 ffmpeg)。

图片序列合成 GIF

使用 Pillow:按文件名排序读取多张静态图,save_all=True 写出 GIF,可配置 duration(毫秒)、loop(0 为无限循环)、optimize 等。文档还提供对已生成 GIF 按比例缩放的示例(ImageSequence.Iterator)。

视频转 GIF

  • imageio:iio.imiter 读视频,按起始秒、时长、fps 截取帧,可选 resize_width 缩放后 iio.imwrite 输出。
  • FFmpeg:文档给出从指定起点截取、设置 fps 与 palette 的 shell 示例,适合追求速度的场景。

屏幕录制转 GIF

文档提供基于 pyautogui 按区域或全屏截帧、再用 imageio 写 GIF 的示例,并注明适用于 Windows;使用前需 pip install pyautogui。

命令行一站式脚本

SKILL.md 内含完整 gif.py 示例:images 模式合并多图,video 模式从视频截取片段,支持 -d、-fps、-s、-t、--width、--loop 等参数。文档末尾有「快速参考」一行命令示例及用 Pillow optimize 压缩 GIF 的片段。

安装与启用

方式一:SkillHub CLI(推荐)

先确认是否已安装 CLI:

command -v skillhub && skillhub --version

未安装时可按 SkillHub 安装说明执行(完整安装示例):

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

安装 dongtu 时须用 --dir 指向当前 Agent 的 skills 目录,否则默认落在 ./skills/ 可能不被识别。例如 Cursor 常用路径为 ~/.cursor/skills/:

skillhub install jm-jsjkxyjs01-llx-146 --namespace user_fe9f5f41 --dir ~/.cursor/skills/

Claude Code 一般为 ~/.claude/skills/;Codex 为 ~/.codex/skills/ 或项目下 .agents/skills/。安装后按所用客户端要求重启或刷新 Agent,使 Skill 生效。

方式二:让 AI 按官方提示安装

SkillHub 页面提供的安装提示为:根据 https://skillhub.cn/install/skillhub.md ,安装 @user_fe9f5f41/jm-jsjkxyjs01-llx-146。可将该句发给支持 Skill 的 Agent,由其按文档完成 CLI 与 --dir 配置。

方式三:下载 Zip

SkillHub 提供 v1.0.0 Zip 包下载(页面侧栏「下载 Zip 包安装」),地址形如:

https://api.skillhub.cn/api/v1/download?slug=@user_fe9f5f41/jm-jsjkxyjs01-llx-146

解压后将 Skill 目录放到对应 Agent 的 skills 路径即可。

典型用法

安装并启用后,在对话中说明需求(例如「把 frames/*.png 合成 200ms 一帧的 GIF」或「从 demo.mp4 第 10 秒起截 3 秒、宽 480、10fps」),Agent 应参照 SKILL.md 选用 Pillow 或 imageio 片段。

图片合成(文档基本用法摘要):

from PIL import Image
import glob

frames = []
for img_path in sorted(glob.glob("frames/frame_*.png")):
    frames.append(Image.open(img_path))

frames[0].save(
    "output.gif",
    save_all=True,
    append_images=frames[1:],
    duration=200,
    loop=0,
    optimize=True,
)

视频转 GIF(文档示例调用):

video_to_gif("video.mp4", "output.gif", start_sec=10, duration_sec=3, fps=10, resize_width=480)

命令行脚本(文档示例):

python gif.py images -i img1.png img2.png img3.jpg -o animation.gif -d 150 --width 640
python gif.py video -i demo.mp4 -o clip.gif -s 5 -t 4 -fps 12 --width 480

实际路径、帧率与尺寸以你项目中的文件为准;Agent 的职责是按 Skill 中的参数表与示例生成或调整脚本,而不是替代你在本机执行 pip / python / ffmpeg。

适用场景与注意

适合谁: 需要在 Cursor、Claude Code 等 Agent 里反复做 GIF 的开发者或内容作者;希望把 Pillow / imageio / FFmpeg 用法固定成可复用说明,减少每次从零查文档。

限制与注意:

  1. Skill 是操作指南与示例代码,不包含预编译二进制;本机须自备 Python 及可选 ffmpeg、pyautogui。
  2. 屏幕录制示例面向 Windows + pyautogui,Linux/macOS 需自行改用对应截屏方案,Skill 未展开。
  3. 大体积 GIF 需注意 optimize、quality 与分辨率;文档提供了缩放与压缩参考,输出体积仍取决于源素材。
  4. SkillHub 页面上概述字段为空(hasOverview: false),以包内 SKILL.md 为唯一能力说明来源。
  5. 社区发布、作者未认证(isAuthorVerified: false),使用前可在 SkillHub 查看安全扫描结果并按团队规范评估。

结尾

dongtu 把 GIF 动图生成的常见路径——多图合成、视频片段、录屏与命令行封装——收敛进一份 Agent 可读的 SKILL.md,分类落在设计媒体下的图片生成,且无需 API Key。若你已在用 SkillHub 管理 Skills,可用 CLI 装到正确的 --dir 后,在对话里直接描述动图需求。

官方 SkillHub 页面:https://www.skillhub.cn/skills/user_fe9f5f41/jm-jsjkxyjs01-llx-146

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye