# 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`）
