gif-splitter

GIF动图切分工具,将超过指定帧数的GIF文件自动拆分成多个小文件。适用于微信公众号等平台上传GIF时遇到"帧数超限"的问题。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gif-splitter" with this command: npx skills add isjiamu/jiamu-skills/isjiamu-jiamu-skills-gif-splitter

GIF 动图切分工具

概述

这个技能用于解决上传GIF到微信公众号等平台时遇到的"图片帧数超过300帧"限制问题。它会自动检测GIF帧数,并将超限的GIF智能切分成多个符合要求的小文件。

使用场景

当用户遇到以下情况时触发此技能:

  • 上传GIF到微信公众号提示"帧数超过300帧"
  • 需要将大GIF拆分成多个小GIF
  • 需要检查GIF文件的帧数信息
  • 需要将GIF拆分后确保每个文件不超过指定大小

快速开始

当用户需要切分GIF时,运行以下脚本:

# 切分单个GIF文件(默认最大280帧)
python3 ~/.claude/skills/jiamu-skills/gif-splitter/scripts/split_gif.py "GIF文件路径"

# 切分文件夹中所有GIF
python3 ~/.claude/skills/jiamu-skills/gif-splitter/scripts/split_gif.py "文件夹路径"

输出目录:原文件所在目录下的 split_output/ 文件夹

依赖环境

安装 Pillow

pip3 install Pillow

验证安装

python3 -c "from PIL import Image; print('Pillow 安装成功')"

使用命令

基础用法

# 切分单个文件
python3 scripts/split_gif.py "动图.gif"

# 切分整个文件夹
python3 scripts/split_gif.py ~/Desktop/gif文件夹/

自定义参数

# 指定最大帧数(默认280帧,微信限制300帧)
python3 scripts/split_gif.py "动图.gif" --max-frames 200

# 指定输出目录
python3 scripts/split_gif.py "动图.gif" -o ~/Desktop/output

# 仅查看GIF信息,不切分
python3 scripts/split_gif.py "动图.gif" --info

# 组合使用
python3 scripts/split_gif.py ~/gifs/ --max-frames 250 -o ~/output --info

参数说明

参数说明默认值
pathGIF文件或文件夹路径必填
--max-frames, -m每个输出文件的最大帧数280
-o, --output输出目录原目录下的 split_output/
--info仅显示GIF信息,不执行切分False

工作原理

切分算法

  1. 读取GIF:使用Pillow库读取GIF的所有帧和每帧的持续时间
  2. 计算分片:根据总帧数和最大帧数限制,计算需要切分的文件数量
  3. 均匀分配:将帧数均匀分配到各个输出文件,避免最后一个文件帧数过少
  4. 保存输出:保留原始帧率和循环设置,生成优化后的GIF文件

示例

原文件:演示动画.gif(740帧,5.7MB)

切分结果:

演示动画_第1部分.gif  (247帧, 约2MB)
演示动画_第2部分.gif  (247帧, 约2MB)
演示动画_第3部分.gif  (246帧, 约2MB)

平台限制参考

平台帧数限制文件大小限制建议 --max-frames
微信公众号300帧10MB280(默认)
微信聊天无明确限制25MB根据需要
微博无明确限制20MB根据需要

常见问题

切分后文件比原文件大?

这是正常现象。原因:

  1. 原GIF可能使用了全局调色板优化
  2. 切分后每个文件需要独立的调色板
  3. 帧间压缩效果降低

解决方案:适当增加 --max-frames 减少切分数量

切分后动画速度变了?

脚本会保留原始帧率。如果发现速度异常,可能是原GIF的帧时间信息不完整。

如何只查看GIF信息不切分?

python3 scripts/split_gif.py "动图.gif" --info

输出示例:

文件: 演示动画.gif
帧数: 740 帧
大小: 5.70 MB
尺寸: 800x600
状态: 需要切分(超过 280 帧)

输出格式

输出文件命名规则:{原文件名}_第{序号}部分.gif

例如:

  • 演示.gif演示_第1部分.gif, 演示_第2部分.gif

技术细节

  • 库依赖:Pillow (PIL)
  • Python版本:3.6+
  • 支持格式:GIF(动态/静态)
  • 输出优化:启用GIF优化压缩

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

magazine-layout

No summary provided by upstream source.

Repository SourceNeeds Review
General

sales-ai-assistant

No summary provided by upstream source.

Repository SourceNeeds Review
General

Speech Writer

演讲稿(TED风格)、婚礼致辞、商务演讲、励志演讲、祝酒词、演讲大纲。Speech writing for TED-style talks, wedding speeches, business presentations, motivational speeches, toasts, and outlines....

Registry SourceRecently Updated
General

Study Plan

学习计划生成器。考研计划、考证规划、每日学习、番茄钟。Study plan generator for exams, certifications, daily schedules. 学习计划、考研计划、备考规划。Use when creating study schedules.

Registry SourceRecently Updated