# Slack Gif Creator

用于创建针对 Slack 优化的动画 GIF 的知识和工具集。提供约束条件、验证工具和动画概念。当用户请求为 Slack 创建动画 GIF 时使用，例如"为 Slack...

- Repository: https://github.com/LeastBit/Claude_skills_zh-CN (602 stars)
- Category: Engineering
- License: 完整条款见 LICENSE.txt
- Last updated: 2026-01-19
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add LeastBit/Claude_skills_zh-CN --skill slack-gif-creator -g -a claude-code -y`
Codex: `npx skills add LeastBit/Claude_skills_zh-CN --skill slack-gif-creator -g -a codex -y`
Cursor: `npx skills add LeastBit/Claude_skills_zh-CN --skill slack-gif-creator -g -a cursor -y`
Gemini CLI: `npx skills add LeastBit/Claude_skills_zh-CN --skill slack-gif-creator -g -a gemini-cli -y`

## Description

用于创建针对 Slack 优化的动画 GIF 的知识和工具集。提供约束条件、验证工具和动画概念。当用户请求为 Slack 创建动画 GIF 时使用，例如"为 Slack 制作一个 X 做 Y 的 GIF"。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Slack GIF 创建器

一个提供工具和知识的工具包，用于创建针对 Slack 优化的动画 GIF。

## Slack 要求

**尺寸：**
- 表情符号 GIF：128x128（推荐）
- 消息 GIF：480x480

**参数：**
- FPS：10-30（较低的值可减小文件大小）
- 颜色：48-128（颜色越少 = 文件越小）
- 时长：表情符号 GIF 应控制在 3 秒以内

## 核心工作流程

```python
from core.gif_builder import GIFBuilder
from PIL import Image, ImageDraw

# 1. 创建构建器
builder = GIFBuilder(width=128, height=128, fps=10)

# 2. 生成帧
for i in range(12):
    frame = Image.new('RGB', (128, 128), (240, 248, 255))
    draw = ImageDraw.Draw(frame)

    # 使用 PIL 基础图形绘制你的动画
    # （圆形、多边形、线条等）

    builder.add_frame(frame)

# 3. 保存并优化
builder.save('output.gif', num_colors=48, optimize_for_emoji=True)
```

## 绘制图形

### 处理用户上传的图片
如果用户上传了图片，请考虑他们想要：
- **直接使用**（例如，"给这个添加动画"，"把这个分成帧"）
- **作为灵感参考**（例如，"制作类似这样的东西"）

使用 PIL 加载和处理图片：
```python
from PIL import Image

uploaded = Image.open('file.png')
# 直接使用，或仅作为颜色/风格的参考
```

### 从零开始绘制
从零开始绘制图形时，使用 PIL ImageDraw 基础图形：

```python
from PIL import ImageDraw

draw = ImageDraw.Draw(frame)

# 圆形/椭圆
draw.ellipse([x1, y1, x2, y2], fill=(r, g, b), outline=(r, g, b), width=3)

# 星形、三角形、任何多边形
points = [(x1, y1), (x2, y2), (x3, y3), ...]
draw.polygon(points, fill=(r, g, b), outline=(r, g, b), width=3)

# 线条
draw.line([(x1, y1), (x2, y2)], fill=(r, g, b), width=5)

# 矩形
draw.rectangle([x1, y1, x2, y2], fill=(r, g, b), outline=(r, g, b), width=3)
```

**不要使用：** Emoji 字体（在不同平台上表现不一致）或假设此技能中有预打包的图形。

### 让图形更美观

图形应该看起来精致有创意，而不是简陋。以下是方法：

**使用较粗的线条** - 轮廓和线条始终设置 `width=2` 或更高。细线（width=1）看起来粗糙且业余。

**添加视觉深度**：
- 使用渐变背景（`create_gradient_background`）
- 叠加多个形状以增加复杂度（例如，一个星形内部套一个小星形）

**让形状更有趣**：
- 不要只画一个普通的圆 - 添加高光、光环或图案
- 星形可以有光晕（在后面绘制更大的半透明版本）
- 组合多个形状（星形 + 闪光、圆形 + 光环）

**注意颜色搭配**：
- 使用鲜艳的互补色
- 添加对比度（浅色形状用深色轮廓，深色形状用浅色轮廓）
- 考虑整体构图

**对于复杂形状**（心形、雪花等）：
- 使用多边形和椭圆的组合
- 仔细计算点位以保持对称
- 添加细节（心形可以有高光曲线，雪花有精细的分支）

要有创意和注重细节！好的 Slack GIF 应该看起来精致，而不是像占位图形。

## 可用工具

The rest: https://github.com/LeastBit/Claude_skills_zh-CN/blob/HEAD/skills/slack-gif-creator/SKILL.md
