用途:为聊天平台(重点为 Slack)创建动画 GIF,区分表情 GIF 与消息 GIF 两类规格。表情 GIF:最大 64 KB、建议 128x128 正方形、10-12 FPS、32-48 色、时长 1-2 秒;消息 GIF:最大约 2 MB、典型 480x480、15-20 FPS、128-256 色、时长 2-5 秒。
主要能力:GIFBuilder 组装帧并按 Slack 要求优化保存;validators 提供 validate_gif、is_slack_ready、check_slack_size、validate_dimensions 校验;easing 模块提供 interpolate,支持 linear、ease_in、ease_out、ease_in_out、bounce_out、elastic_out、back_out;frame_composer 提供画圆、矩形、线、文字、星星、渐变背景等辅助;另有 color_palettes、typography(描边/阴影文字)、visual_effects(粒子系统等)与 templates/ 中的现成动画(shake、bounce、spin、zoom、slide、fade、flip、explode 等)。文档还讲解抖动、脉冲、反弹、旋转、淡入淡出、滑动、缩放、粒子爆裂等实现思路。
使用方式:安装依赖 pip install pillow imageio numpy;用 GIFBuilder(width=128, height=128, fps=10) 创建构建器,逐帧用 PIL 绘制并 add_frame,最后 builder.save('output.gif', num_colors=48, optimize_for_emoji=True, remove_duplicates=True)。也可调用 templates 中的函数批量生成帧再 add_frames。用户上传图片时用 PIL 打开,按其意图决定直接使用还是仅作参考。
限制:技能不含预置图形库,不保证 emoji 字体跨平台渲染一致,需自行用形状或文字调整;仅在被要求缩小体积时再做降帧率、减色、缩小尺寸、去重等优化。