Slack GIF Creator
Agent Skill 指南:用于生成主题化 Slack GIF 包,涵盖提示管理、帧动画流水线与审核清单。
来源:基于 anthropics/skills(MIT)内容改写。
本工具包帮助创建满足 Slack 规范的动图,提供尺寸/大小验证器、可组合的动画原语以及若干辅助工具。可根据创意自由组合使用。
Slack GIF 要求
Slack 针对不同用途有严格限制:
消息 GIF:
- 文件体积:约 ≤ 2MB
- 建议尺寸:480×480
- 推荐帧率:15–20 FPS
- 色彩数量:128–256
- 总时长:2–5 秒
表情 GIF:
- 文件体积:≤ 64KB(硬性限制)
- 建议尺寸:128×128
- 推荐帧率:10–12 FPS
- 色彩数量:32–48
- 总时长:1–2 秒
表情 GIF 难度最高(64KB 严格限制),建议策略:
- 总帧数控制在 10–15 帧
- 色彩控制在 32–48 种
- 设计保持简洁
- 避免渐变
- 频繁验证文件大小
工具包结构
本 Skill 提供三类工具:
- 验证器:检查 GIF 是否满足 Slack 限制
- 动画原语:可组合的运动模块(震动、弹跳、滑动、万花筒等)
- 辅助工具:可选函数(文本、配色、特效等)
创作方式完全自由。
核心验证器
用于确保 GIF 符合 Slack 要求:
from core.gif_builder import GIFBuilder
# 构建 GIF 后检查是否合规
builder = GIFBuilder(width=128, height=128, fps=10)
# ... 自行添加帧 ...
# 保存并检测体积
info = builder.save('emoji.gif', num_colors=48, optimize_for_emoji=True)
# save 方法会自动提示是否超限
# info 包含:size_kb, size_mb, frame_count, duration_seconds
文件大小验证:
from core.validators import check_slack_size
passes, info = check_slack_size('emoji.gif', is_emoji=True)
尺寸验证:
from core.validators import validate_dimensions
passes, info = validate_dimensions(128, 128, is_emoji=True)
完整验证:
from core.validators import validate_gif, is_slack_ready
all_pass, results = validate_gif('emoji.gif', is_emoji=True)
if is_slack_ready('emoji.gif', is_emoji=True):
print("Ready to upload!")
动画原语
以下动画模块可自由组合,适用于任意对象:
Shake(震动)
from templates.shake import create_shake_animation
frames = create_shake_animation(
object_type='emoji',
object_data={'emoji': '', 'size': 80},
num_frames=20,
shake_intensity=15,
direction='both'
)
Bounce(弹跳)
from templates.bounce import create_bounce_animation
frames = create_bounce_animation(
object_type='circle',
object_data={'radius': 40, 'color': (255, 100, 100)},
num_frames=30,
bounce_height=150
)
Spin / Rotate(旋转)
from templates.spin import create_spin_animation, create_loading_spinner
# 示例见原始脚本
此外还提供 slide、zoom、wiggle、kaleidoscope 等模板,可针对文本、图形、表情等对象生成动画。
辅助工具示例
- 文字绘制:在帧中绘制多种字体/风格的文本
- 配色工具:生成和谐的主题色、调色板
- 效果函数:如闪烁、渐显、粒子、噪声等
- 合成函数:组合多段动画、拼接帧序列
所有工具仅作参考,可根据需求自由调整。