Overview
- Skill Key
- guanyang/gif-maker
- Author
- guanyang
- Source Repo
- openclaw/skills
- Version
- -
- Source Path
- skills/guanyang/gif-maker
- Latest Commit SHA
- cdc2398580120fc733e9d4f44ae09f75318f2bf8
将序列帧图片或精灵表(Sprite Sheet)转换为高质量 GIF 动画。支持自定义 FPS、布局切分及循环播放。
Stars
0
Installs
0
Status
ACTIVE
Visibility
PUBLIC
直接复制以下提示词,发送给你的 AI 助手即可完成安装。
请先检查是否已安装 SkillHub 商店,若未安装,请根据 https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/skillhub.md 安装 SkillHub 商店,然后安装 gif-maker 技能。 若已安装,则直接安装 gif-maker 技能。
# GIF 动画生成器 (GIF Maker)
本 Skill 旨在帮助用户快速将一组序列帧图片或单张精灵表(Sprite Sheet)转换为 GIF 动画。
## 核心功能
* **序列帧转 GIF**:支持读取文件夹内的 `png`, `jpg` 序列,按文件名排序合成 GIF。
* **精灵表转 GIF**:支持读取单张 Grid 图片(如 4x4 精灵表),自动切分并合成为 GIF。
* **智能压缩**:支持通过 `--max-size` 参数指定目标文件大小(如 950KB),自动调整压缩参数以满足微信表情包等平台的体积限制。
* **参数控制**:
* `--fps`:指定每秒帧数(默认为 12)。
* `--layout`:指定精灵表布局(如 `4x4`),仅在这个模式下需要。
* `--loop`:默认永久循环。
* `--max-size`: 指定最大体积 (KB)。
## 使用指南
### 1. 快速开始
无需手动安装依赖,直接运行脚本即可。工具会自动创建虚拟环境 (`.venv`) 并安装所需依赖。
```bash
# 基本用法 1:从文件夹读取序列帧
./skills/gif-maker/scripts/run.sh /path/to/frame_folder --output my_anim.gif
# 基本用法 2:从单张精灵表生成 (需要指定布局)
./skills/gif-maker/scripts/run.sh /path/to/sheet.png --layout 4x4 --output my_sheet_anim.gif
# 常用选项:
# - 指定 FPS (例如 24)
./skills/gif-maker/scripts/run.sh /path/to/folder --fps 24
# - 开启自动压缩 (限制文件大小在 950KB 以内)
./skills/gif-maker/scripts/run.sh /path/to/folder --max-size 950
```
### 2. (可选) 手动安装
如果您希望手动管理环境(注意:压缩功能依赖 `gifsicle` 工具,请确保系统已安装):
- macOS: `brew install gifsicle`
- Ubuntu: `sudo apt-get install gifsicle`
```bash
python3 -m venv skills/gif-maker/.venv
source skills/gif-maker/.venv/bin/activate
pip install -r skills/gif-maker/requirements.txt
python3 skills/gif-maker/scripts/make_gif.py ...
```
## 参数说明
* `source`: 输入路径。可以是包含图片的文件夹,也可以是单张图片文件。
* `--output` (`-o`): 输出 GIF 文件名,默认为 `output.gif`。
* `--fps`: 帧率,默认为 12。
* `--layout`: 仅当 `source` 为单文件时使用,格式为 `行数x列数` (如 `4x4`)。
* `--max-size`: (可选) 启用 GIF 压缩,指定目标文件最大大小 (KB)。仅当原始文件超过此大小时才会尝试压缩。
## 示例
假设你有一个文件夹 `frames/` 包含...
# GIF Maker (GIF 动画生成助手)
这是一个专为 Agent 流程设计的 Skill,旨在快速将序列帧图片或精灵表(Grid Sprite Sheet)转换为 GIF 动画,并支持针对微信表情包等场景的智能压缩。
## 🧩 核心原理
本 Skill 基于 Python 的 `Pillow` 和 `gifsicle` (可选) 构建,核心处理流程如下:
1. **灵活的输入源处理 (Input Handling)**:
* **序列帧模式**: 自动扫描指定目录下的 `png`/`jpg` 图片,按文件名自然排序作为动画帧。
* **精灵表模式**: 支持读取单张大图(如 4x4 网格图),通过 `--layout` 参数将其切分为独立的帧序列。
2. **动画合成 (Animation Composition)**:
* 根据用户指定的帧率 (`--fps`),精确计算每一帧的持续时间。
* 使用 Pillow 库构建动画,设置循环模式(默认为永久循环)和处理方式(Disposal Method 为 Background,避免透明图层重叠残留)。
3. **智能压缩 (Smart Compression)**:
* (集成 `gifsicle`) 针对微信表情包限制(通常需 <1MB 或 <500KB),提供 `--max-size` 参数。
* 当输出文件超标时,系统通过二分逼近或预设梯度(Lossy 强度、尺寸缩放)自动尝试压缩,直到文件体积达标,无需人工反复试错。
* *注:此功能依赖系统安装 `gifsicle` 工具。*
## 📂 目录结构
Skill 的文件组织结构如下:
```text
skills/gif-maker/
├── README.md # 本说明文档
├── SKILL.md # Agent Skill 定义及规范引用
├── requirements.txt # Python 依赖 (Pillow)
└── scripts/
├── make_gif.py # 核心处理脚本 (包含压缩逻辑)
└── run.sh # 自动环境配置与执行入口
```
## 💡 最佳实践
### 配合 WeChat Sticker Maker 使用
通常我们使用 `wechat-sticker-maker` 切分好的静态图序列来生成 GIF:
1. **切分**: 先用 `wechat-sticker-maker` 将九宫格切分为 `sticker_output/main/` 下的序列图。
2. **合成**: 再用本 Skill 指向该目录生成 GIF。
```bash
./skills/gif-maker/scripts/run.sh sticker_output/main/ -o my_anim.gif --fps 10
```
### 精灵表直接生成
如果不需要中间的静态图,也可以直接从原图生成:
```bash
# 从 4x4 原图直接生成 25fps 的 GIF
./skills/gif-maker/scripts/run.sh origin_grid.png --layout 4x4 --fps 25 --output direct_anim.gif
```
### 控制体积
为...
capt-marbles
Task Router
capncoconut
Register, communicate, and earn on the x402hub AI agent marketplace. Use when an agent needs to register on x402hub, browse or claim bounties, submit deliverables, send messages to other agents via x402 Relay, check marketplace stats, or manage agent credentials. Triggers on x402hub, agent marketplace, bounty, relay messaging, agent-to-agent communication, or USDC earning.
capevace
Real-time event bus for AI agents. Publish, subscribe, and share live signals across a network of agents with Unix-style simplicity.
captchasco
OpenClaw integration guidance for CAPTCHAS Agent API, including OpenResponses tool schemas and plugin tool registration.
carol-gutianle
name: modelready description: Start using a local or Hugging Face model instantly, directly from chat. metadata: {"openclaw":{"requires":{"bins": "bash", "curl" }, "env": "URL" }}
canbirlik
Controls Wiz smart bulbs (turn on/off, RGB colors, disco mode) via local WiFi.