本页面由机器翻译。发现错误了吗?帮助改进它。
Skip to content

GIF 工具 ​

对动画 GIF 进行调整大小、优化、变速、反转、提取帧和旋转。在单个工具中提供多种操作模式。

API 端点 ​

POST /api/v1/tools/image/gif-tools

参数 ​

通用参数 ​

参数类型是否必填默认值说明
modestring否"resize"操作模式:resize、optimize、speed、reverse、extract、rotate
loopnumber否0输出 GIF 的循环次数(0 = 无限,1-100 = 有限次循环)

调整大小模式参数 ​

参数类型是否必填默认值说明
widthinteger否-目标宽度(像素,1 到 16384)
heightinteger否-目标高度(像素,1 到 16384)
percentagenumber否-按百分比缩放(1 到 500)。设置后会覆盖 width/height。

优化模式参数 ​

参数类型是否必填默认值说明
colorsnumber否256调色板中的最大颜色数(2 到 256)
dithernumber否1.0抖动强度(0 到 1,0 表示禁用抖动)
effortnumber否7优化投入级别(1 到 10,越高越慢但文件越小)

变速模式参数 ​

参数类型是否必填默认值说明
speedFactornumber否1.0速度倍数(0.1 到 10)。值 > 1 加速,< 1 减速。

提取模式参数 ​

参数类型是否必填默认值说明
extractModestring否"single"提取模式:single、range、all
frameNumbernumber否0在 single 模式下要提取的帧索引(从 0 开始)
frameStartnumber否0range 模式下的起始帧索引(从 0 开始)
frameEndnumber否-range 模式下的结束帧索引(从 0 开始,含此帧)
extractFormatstring否"png"提取帧的格式:png、webp

旋转模式参数 ​

参数类型是否必填默认值说明
anglenumber否-旋转角度:90、180 或 270 度
flipHboolean否false水平翻转
flipVboolean否false垂直翻转

请求示例 ​

调整大小 ​

bash
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "[email protected]" \
  -F 'settings={"mode":"resize","percentage":50}'

优化 ​

bash
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "[email protected]" \
  -F 'settings={"mode":"optimize","colors":128,"effort":9}'

加速 ​

bash
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "[email protected]" \
  -F 'settings={"mode":"speed","speedFactor":2.0}'

提取单帧 ​

bash
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "[email protected]" \
  -F 'settings={"mode":"extract","extractMode":"single","frameNumber":5,"extractFormat":"png"}'

响应示例 ​

json
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/animation.gif",
  "originalSize": 2345678,
  "processedSize": 1234567
}

Info 子路由 ​

POST /api/v1/tools/image/gif-tools/info

返回动画 GIF 的元数据而不对其进行处理。

Info 请求 ​

bash
curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools/info \
  -F "[email protected]"

Info 响应 ​

json
{
  "width": 480,
  "height": 320,
  "pages": 24,
  "delay": [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
  "loop": 0,
  "fileSize": 2345678,
  "duration": 2400
}

说明 ​

  • 主处理端点使用标准的 createToolRoute 工厂。
  • info 端点只需上传文件(无需设置)。
  • 在 resize 模式下,如果提供了 percentage,它会优先于 width/height。调整大小使用 fit: inside 以保持宽高比。
  • 在 speed 模式下,帧延迟会除以速度因子。每帧的最小延迟为 20ms(GIF 规范限制)。
  • 在 reverse 模式下,还可使用 speedFactor 参数在反转的同时调整速度。
  • 在 extract 模式且使用 range 或 all 时,输出是包含各个帧的 ZIP 文件。
  • 在 rotate 模式下,会单独处理每一帧并重新组装成动画。
  • loop 参数控制输出 GIF 的循环次数。使用 0 表示无限循环。
  • info 响应中的 duration 字段是以毫秒为单位的动画总时长。