slack-gif-creator

其他 已审计 @anthropics
信任分
94/100
兼容 Agent
1
许可证
Complete terms in LICENSE.txt
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
通用
兼容 Agent
Claude Code
信任分
94 / 100 · 已通过审计
作者 / 版本 / 许可
@anthropics · Complete terms in LICENSE.txt
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

slack-gif-creator 是给 Slack 量身造 GIF 的工具箱。专门处理 Slack 对 emoji 与 message GIF 的硬性约束:尺寸、帧率、调色板大小、文件体积上限——这些不解决,GIF 上传后要么糊、要么过大、要么压成马赛克。

设计思路

作者把 GIF 创作当成「调参数 + 画图」,而不是「让模型瞎画」。先把 Slack 要求列死:emoji 推荐 128×128、message 480×480、FPS 10–30、color 48–128(少 = 文件小)、emoji 时长 < 3 秒;再把绘制原语聚焦到 PIL 的 ImageDraw(圆 / 多边形 / 线 / 矩形),明令不要依赖 emoji 字体(跨平台不可靠)也不要假设技能里自带图形包。

核心工作流

① 创建 builder:GIFBuilder(width=128, height=128, fps=10);② 循环里逐帧 Image.new + ImageDraw.Draw,调 ellipse / polygon / line / rectangle,再 builder.add_frame(frame);③ builder.save('output.gif', num_colors=48, optimize_for_emoji=True)

用户上传图怎么处理

要先判断意图:是「按这张图原样动起来 / 切帧」还是「以这张图为灵感」。前者直接 Image.open('file.png') 用,后者只取颜色或风格当参考——别糊涂混用。

让图看起来不像玩具的具体建议

作者给的实操:所有 outline 与线条 width=2 起步(width=1 看起来切碎、像业余);颜色用足饱和度但不要全部 max;动画曲线尽量缓动而非线性。

适合的场景

  • 团队需要批量定制 Slack 自定义 emoji
  • 给 channel 主题做主视觉 GIF
  • 需要按调色板 / 帧数严格控大小的内部素材

何时不要用

  • 想要逐字记号的复杂排版:emoji 字体限制让 PIL 不擅长这个
  • 高保真摄像 / 视频片段:用 ffmpeg 直接切而不是 PIL 重画

配套

web-artifacts-builder(把同样素材推成网页可视化)、pdf / pptx(如果需要静态版本输出)。