SuperAPI AI 工具集

slack-gif-creator

设计与创作

查看项目

更新于 10-16 06:05

技能介绍

用途

Slack GIF Creator 是一套用于制作适配 Slack 的动画 GIF 的工具包。它面向 Slack 对 GIF 的两类使用场景——消息 GIF 与表情 GIF——提供尺寸约束校验、可组合的动画原语,以及可选的辅助工具。资料说明,这些工具可被自由组合以实现创作目标,工具包提供的是构建块而非固定配方。

Slack 的要求

消息 GIF

  • 最大体积:约 2MB
  • 推荐尺寸:480x480
  • 典型帧率:15-20 FPS
  • 颜色数:128-256
  • 时长:2-5 秒

表情 GIF

  • 最大体积:64KB(严格限制)
  • 推荐尺寸:128x128
  • 典型帧率:10-12 FPS
  • 颜色数:32-48
  • 时长:1-2 秒

资料指出表情 GIF 的 64KB 限制较为严苛,建议策略包括:总帧数限制在 10-15 帧、最多使用 32-48 种颜色、保持设计简单、避免渐变、频繁校验文件体积。

主要能力

校验器

  • 文件体积校验:check_slack_size('emoji.gif', is_emoji=True),返回通过与否及体积细节。
  • 尺寸校验:validate_dimensions(128, 128, is_emoji=True)。
  • 完整校验:validate_gif('emoji.gif', is_emoji=True) 或快速判断 is_slack_ready('emoji.gif', is_emoji=True)。
  • GIFBuilder 的 save 方法在文件超限时会自动警告,返回信息包含 size_kb、size_mb、frame_count、duration_seconds。

动画原语(可组合)

资料列出以下原语,均可通过对应模板模块调用:

  • 抖动 Shake:可设置强度与方向(both / horizontal / vertical)。
  • 弹跳 Bounce。
  • 旋转 Spin / Rotate:支持顺时针、摇摆(wobble)、加载指示器(dots)。
  • 脉冲 Pulse / Heartbeat:平滑脉冲、心跳(双拍)、注意力脉冲。
  • 淡入淡出 Fade:fade in、fade out、两个表情间的交叉淡化。
  • 缩放 Zoom:放大、缩小、爆炸式缩放(可加运动模糊)。
  • 爆炸 Explode / Shatter:爆裂、碎裂、溶解为粒子、粒子喷射。
  • 扭动 Wiggle / Jiggle:果冻式抖动、波浪运动、兴奋抖动。
  • 滑入 Slide:从某方向滑入(可带超出回弹)、横向滑过、多对象依次滑入。
  • 翻转 Flip:水平翻转、垂直翻转、快速翻转。
  • 变形 Morph / Transform:交叉淡化变形、缩放变形、旋转变形。
  • 移动 Move:线性、弧线(抛物线)、圆周、波浪运动,可配合缓动。
  • 万花筒 Kaleidoscope:单帧应用、动画化万花筒,以及更快的一步镜像(横向、纵向、四向、径向)。

资料提供了组合原语的写法示例,例如弹跳加冲击抖动、移动加抖动触发等,并说明可自由混合。

辅助工具

  • GIFBuilder(组装与优化):自动颜色量化、去除重复帧、Slack 体积警告、表情模式(激进优化)。
  • 文字渲染:draw_text_with_outline 及 TYPOGRAPHY_SCALE,用于小尺寸 GIF 提高可读性;也提示大 GIF 可直接用 PIL 的 ImageDraw.text()。
  • 颜色管理:get_palette('vibrant') 等预设调色板(vibrant、pastel、dark、neon、professional)。
  • 视觉特效:ParticleSystem(火花、彩带)、create_impact_flash 闪光、create_shockwave_rings 冲击波环。
  • 缓动函数:interpolate 支持 linear、ease_in、ease_out、ease_in_out、bounce_out、elastic_out、back_out 等。
  • 帧合成:create_gradient_background、draw_emoji_enhanced(可带阴影)、draw_circle_with_shadow、draw_star。

优化策略

  • 消息 GIF 超 2MB 时:减少帧数(降帧率或缩短时长)、减少颜色(128→64)、缩小尺寸(480x480→320x320)、启用重复帧去除。
  • 表情 GIF 超 64KB 时(需更激进):限制 10-12 帧、最多 32-40 色、避免渐变(纯色压缩更好)、简化设计、在 save 中使用 optimize_for_emoji=True。

使用方式

资料中的示例显示典型流程为:使用 GIFBuilder(width, height, fps) 创建构建器,逐帧添加 add_frame,最后通过 save('output.gif', num_colors=..., optimize_for_emoji=...) 保存,并按需调用校验器。动画原语与辅助工具通过各模板与 core 模块导入使用。资料末尾提到「依赖:使用本工具包时,请安装这些依赖(仅当尚未安装时)」,但其后的具体依赖安装命令内容缺失,暂未提供。

适用场景

适合需要为 Slack 制作消息动图或表情动图的场景,尤其是对体积、尺寸、帧数有严格限制的表情 GIF。工具包强调在 Slack 技术约束内实现创作自由。

限制

  • 表情 GIF 的 64KB 上限非常严格,需要激进优化。
  • 小尺寸表情 GIF 的文字可读性较难,资料建议使用描边等方式。
  • 依赖安装的具体方式与命令在资料中未完整给出,暂未提供。