用途:为 Slack 制作优化后的动画 GIF,提供 Slack 的尺寸与参数约束、校验工具以及常见动画概念,动画逻辑需自行用 PIL 编写。
主要能力:GIFBuilder 负责组装帧并优化输出;validators 提供 validate_gif 与 is_slack_ready 校验是否符合 Slack 要求;easing 提供 interpolate 缓动(linear、ease_in、ease_out、ease_in_out、bounce_out、elastic_out、back_out);frame_composer 提供 create_blank_frame、create_gradient_background、draw_circle、draw_text、draw_star 等辅助函数。
Slack 要求:表情 GIF 建议 128x128,消息 GIF 480x480;FPS 10-30(越低文件越小);颜色 48-128(越少文件越小);表情 GIF 时长建议 3 秒以内。
用法:用 GIFBuilder(width=128, height=128, fps=10) 创建构建器,逐帧用 PIL 绘制并 add_frame,最后 builder.save('output.gif', num_colors=48, optimize_for_emoji=True)。校验用 validate_gif('my.gif', is_emoji=True, verbose=True) 或 is_slack_ready('my.gif')。用户上传图片时用 PIL 打开,按其意图直接使用或仅作参考。
动画概念:抖动、脉冲/心跳、弹跳、旋转、淡入淡出、滑动、缩放、粒子爆发等,可组合使用。
限制:不提供固定动画模板或预制图形库,不使用 emoji 字体(跨平台不可靠);仅在要求减小文件时采用降帧率、减颜色、缩小尺寸、去重、emoji 模式等优化。依赖:pip install pillow imageio numpy。