# giftool - 对 GIF 动图进行裁剪、抽帧等处理 ## 格式 ```bash giftool [图片] [选项] ``` ## 示例 - **回复一张 GIF 并发送:** ```bash giftool --ss 1.5 -t 2.0 ``` 从 1.5 秒处开始,截取 2 秒长度的片段。 - ```bash giftool [图片] --ss 0:10 -to 0:15 ``` 截取从 10 秒到 15 秒之间的片段(支持 `MM:SS` 或 `HH:MM:SS` 格式)。 - ```bash giftool [图片] --frames:v 10 ``` 将整张 GIF 均匀抽帧,最终保留 10 帧。 - ```bash giftool [图片] --ss 2 --frames:v 5 ``` 从第 2 秒开始截取,并将结果抽帧为 5 帧。 ## 参数说明 ### 图片(必需) - 必须是 GIF 动图。 - 支持直接附带图片,或回复一条含 GIF 的消息后使用指令。 ### `--ss <时间戳>`(可选) - 指定开始时间(单位:秒),可使用以下格式: - 纯数字(如 `1.5` 表示 1.5 秒) - 分秒格式(如 `1:30` 表示 1 分 30 秒) - 时分秒格式(如 `0:1:30` 表示 1 分 30 秒) - 默认从开头开始(0 秒)。 ### `-t <持续时间>`(可选) - 指定截取的持续时间(单位:秒),格式同 `--ss`。 - 与 `--ss` 配合使用:截取 `[ss, ss + t]` 区间。 - **不能与 `--to` 同时使用。** ### `--to <时间戳>`(可选) - 指定结束时间(单位:秒),格式同 `--ss`。 - 与 `--ss` 配合使用:截取 `[ss, to]` 区间。 - **不能与 `-t` 同时使用。** ### `--frames:v <帧数>`(可选) - 对截取后的片段进行均匀抽帧,保留指定数量的帧。 - 帧数必须为正整数(> 0)。 - 若原始帧数 ≤ 指定帧数,则保留全部帧。 ### `--speed <速度>`(可选) - 调整 GIF 图的速度。若为负数,则代表倒放。 ### `--pingpong`(可选) - 开启乒乓模式,生成正放-倒放拼接的 GIF 图。 - 即播放完正向后,会倒放回去,形成往复循环效果。 - 可与 `--speed` 配合使用,调整播放速度。 - 示例:`giftool [图片] --pingpong` - 示例:`giftool [图片] --pingpong --speed 2.0` ## 使用方式 1. 发送指令前,请确保: - 消息中附带一张 GIF 动图,**或** - 回复一条包含 GIF 动图的消息后再发送指令。 2. 插件会自动: - 解析 GIF 的每一帧及其持续时间(duration) - 根据时间参数转换为帧索引进行裁剪 - 如指定抽帧,则对裁剪后的片段均匀采样 - 生成新的 GIF 并保持原始循环设置(`loop=0`)