Anthropic Skills 中文文档
首页
使用指南
技能列表
  • 🎨 创意与设计
  • 💻 开发与技术
  • 🏢 企业与沟通
  • 📄 文档处理
  • 🔧 元技能
  • GitHub 仓库
  • Claude 官网
  • Skills 官方文档
GitHub
首页
使用指南
技能列表
  • 🎨 创意与设计
  • 💻 开发与技术
  • 🏢 企业与沟通
  • 📄 文档处理
  • 🔧 元技能
  • GitHub 仓库
  • Claude 官网
  • Skills 官方文档
GitHub
  • 技能列表
  • 🎨 创意与设计

    • 🎨 算法艺术生成

      • 📋 概览
      • 📖 完整指南
    • 🖼️ 画布设计

      • 📋 概览
      • 📖 完整指南
    • 🎬 Slack GIF 创建器

      • 📋 概览
      • 📖 完整指南
    • 🎨 主题工厂

      • 📋 概览
      • 📖 完整指南
  • 💻 开发与技术

    • 🎨 Web 组件构建器

      • 📋 概览
      • 📖 完整指南
    • 📦 MCP 服务器构建器

      • 📋 概览
      • 📖 完整指南
    • 🧪 Web 应用测试工具

      • 📋 概览
      • 📖 完整指南
  • 🏢 企业与沟通

    • 🎨 品牌指南

      • 📋 概览
      • 📖 完整指南
    • 📢 企业内部沟通

      • 📋 概览
      • 📖 完整指南
    • 💎 前端设计

      • 📋 概览
      • 📖 完整指南
  • 📄 文档处理

    • 📘 Word 文档处理

      • 📋 概览
      • 📖 完整指南
    • 📕 PDF 文档处理

      • 📋 概览
      • 📖 完整指南
    • 📙 PowerPoint 演示文稿处理

      • 📋 概览
      • 📖 完整指南
    • 📗 Excel 表格处理

      • 📋 概览
      • 📖 完整指南
  • 🔧 元技能

    • 🛠️ Skill 创建器

      • 📋 概览
      • 📖 完整指南
    • 📝 Skill 模板

      • 📋 概览
      • 📖 完整参考

Slack GIF Creator 完整指南

本文档包含创建 Slack GIF 的完整技术细节。如果您是初次接触,建议先阅读 📋 概览。

  • Slack 规格要求
    • 尺寸规范
    • 性能参数
  • 核心工作流程
    • 1. 创建 GIF 构建器
    • 2. 生成动画帧
    • 3. 保存并优化
  • 动画概念库
    • 抖动/振动
    • 脉冲/心跳
    • 弹跳
    • 旋转
    • 淡入淡出
    • 滑动
    • 缩放
    • 爆炸/粒子
  • 图形绘制
    • PIL ImageDraw 原语
    • 让图形看起来专业
  • 可用工具
    • GIFBuilder
    • 验证器
    • 缓动函数
    • 帧辅助函数
  • 优化策略

Slack 规格要求

尺寸规范

类型宽度高度推荐用途
Emoji GIF128px128px自定义 emoji
Message GIF480px480px消息中的 GIF

性能参数

  • 帧率 (FPS):10-30(数值越低文件越小)
  • 颜色数:48-128(数值越少文件越小)
  • 时长:Emoji GIF 建议 ❤️ 秒

核心工作流程

1. 创建 GIF 构建器

from core.gif_builder import GIFBuilder

builder = GIFBuilder(width=128, height=128, fps=10)

2. 生成动画帧

from PIL import Image, ImageDraw

for i in range(12):
    frame = Image.new('RGB', (128, 128), (240, 248, 255))
    draw = ImageDraw.Draw(frame)
    
    # 绘制图形...
    draw.ellipse([30, 30, 98, 98], fill=(255, 100, 100), width=3)
    
    builder.add_frame(frame)

3. 保存并优化

builder.save('output.gif', 
             num_colors=48,
             optimize_for_emoji=True,
             remove_duplicates=True)

动画概念库

抖动/振动

import math

offset_x = int(5 * math.sin(i * 0.5))
offset_y = int(5 * math.cos(i * 0.5))

脉冲/心跳

scale = 1.0 + 0.2 * math.sin(t * math.pi * 2)
size = int(base_size * scale)

弹跳

from core.easing import interpolate
y = interpolate(start=0, end=100, t=t, easing='bounce_out')

旋转

angle = (i / num_frames) * 360
rotated = image.rotate(angle, resample=Image.BICUBIC)

淡入淡出

alpha = int(255 * t)  # 淡入
alpha = int(255 * (1 - t))  # 淡出

滑动

from core.easing import interpolate
x = interpolate(start=-100, end=64, t=t, easing='ease_out')

缩放

scale = interpolate(start=0.1, end=2.0, t=t, easing='ease_in_out')

爆炸/粒子

# 生成随机角度和速度的粒子
for particle in particles:
    particle.x += particle.vx
    particle.y += particle.vy
    particle.vy += gravity

图形绘制

PIL ImageDraw 原语

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)

让图形看起来专业

使用粗线条 (width ≥ 2):

draw.ellipse([...], width=3)  # ✅
draw.ellipse([...], width=1)  # ❌ 粗糙

添加视觉深度:

# 渐变背景
from core.frame_composer import create_gradient_background
frame = create_gradient_background(128, 128, (255,200,200), (200,200,255))

# 多层形状
draw_star(frame, size=50, color=(255,215,0))
draw_star(frame, size=30, color=(255,255,100))

可用工具

GIFBuilder

builder = GIFBuilder(width=128, height=128, fps=10)
builder.add_frame(frame)
builder.add_frames(frames)
builder.save('out.gif', num_colors=48, optimize_for_emoji=True)

验证器

from core.validators import validate_gif, is_slack_ready

passes, info = validate_gif('my.gif', is_emoji=True, verbose=True)

if is_slack_ready('my.gif'):
    print("准备上传!")

缓动函数

from core.easing import interpolate

y = interpolate(start=0, end=400, t=t, easing='ease_out')

# 可用:linear, ease_in, ease_out, ease_in_out,
#      bounce_out, elastic_out, back_out

帧辅助函数

from core.frame_composer import (
    create_blank_frame,
    create_gradient_background,
    draw_circle,
    draw_text,
    draw_star
)

优化策略

仅在需要减小文件大小时使用:

  1. 降低帧率:10 FPS 而非 20 FPS
  2. 减少颜色:48 色而非 128 色
  3. 缩小尺寸:128x128 而非 480x480
  4. 移除重复:remove_duplicates=True
  5. Emoji 模式:optimize_for_emoji=True

返回:📋 概览 | 技能列表

Prev
📋 概览