Slack GIF Creator 是一个面向 Slack 场景的动画 GIF 制作工具集,包含 Slack 的格式约束、校验工具和动画概念,适合需要自行编写逐帧动画逻辑的用户。
一、用途 用于创建针对 Slack 优化的动画 GIF,并在制作过程中检查是否符合 Slack 的尺寸与参数要求。
二、Slack 要求
- 尺寸:表情 GIF 推荐 128x128;消息 GIF 为 480x480。
- 参数:FPS 10-30(越低文件越小);颜色 48-128(越少文件越小);表情 GIF 时长建议保持在 3 秒以内。
三、主要能力
- GIFBuilder(core.gif_builder):创建构建器(指定宽、高、FPS),用 add_frame 或 add_frames 添加 PIL 图像帧,再用 save 保存,可传入 num_colors、optimize_for_emoji、remove_duplicates 等参数进行优化。
- 校验器(core.validators):validate_gif 做详细校验,is_slack_ready 做快速检查。
- 缓动函数(core.easing):interpolate 支持 linear、ease_in、ease_out、ease_in_out、bounce_out、elastic_out、back_out,使运动更平滑。
- 帧辅助函数(core.frame_composer):create_blank_frame、create_gradient_background、draw_circle、draw_text、draw_star 等常用绘制函数。
- 动画概念:抖动/振动(用 sin/cos 偏移位置)、脉冲/心跳(按正弦缩放)、弹跳(配合缓动与重力)、旋转(PIL rotate)、淡入淡出(RGBA alpha 或 Image.blend)、滑动(从画面外移入)、缩放、爆炸/粒子爆发等,可组合使用。
- 优化策略:减少帧数、减少颜色、缩小尺寸、remove_duplicates、optimize_for_emoji,仅在需要减小文件时使用。
四、使用方式 通过 PIL 的 ImageDraw 原语(椭圆、多边形、线条、矩形等)绘制每一帧,加入 GIFBuilder 后保存并优化。资料给出了完整代码示例,包括创建构建器、循环生成 12 帧、绘制动画、保存输出的流程。用户上传图片时,可用 PIL 加载,并根据请求判断是直接使用还是仅作参考。资料建议使用较粗线条(width=2 以上)、渐变背景、多层形状、高对比配色来提升观感,避免依赖 emoji 字体或假设存在预置图形。
五、适用场景 为 Slack 制作表情动图或消息动图,并结合缓动和多种动画概念制作较精致的逐帧动画。
六、限制 不提供固定动画模板或现成函数、不提供 emoji 字体渲染(跨平台不可靠)、不内置预打包图形库。依赖需安装:pip install pillow imageio numpy。