Search K
GIF ツール
アニメーション GIF のリサイズ、最適化、速度変更、逆再生、フレーム抽出、回転を行います。1 つのツールで複数の操作モードを提供します。
API エンドポイント
POST /api/v1/tools/image/gif-tools
パラメーター
共通パラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| mode | string | いいえ | "resize" | 操作モード: resize、optimize、speed、reverse、extract、rotate |
| loop | number | いいえ | 0 | 出力 GIF のループ回数(0 = 無限、1〜100 = 有限ループ) |
リサイズモードのパラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| width | integer | いいえ | - | 目標の幅(ピクセル、1 から 16384) |
| height | integer | いいえ | - | 目標の高さ(ピクセル、1 から 16384) |
| percentage | number | いいえ | - | パーセンテージでスケール(1 から 500)。設定すると width/height を上書きします。 |
最適化モードのパラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| colors | number | いいえ | 256 | パレット内の最大色数(2 から 256) |
| dither | number | いいえ | 1.0 | ディザリングの強度(0 から 1、0 でディザリングを無効化) |
| effort | number | いいえ | 7 | 最適化の労力レベル(1 から 10、高いほど遅いが小さくなる) |
速度モードのパラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| speedFactor | number | いいえ | 1.0 | 速度倍率(0.1 から 10)。1 より大きい値で高速化、1 未満で低速化します。 |
抽出モードのパラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| extractMode | string | いいえ | "single" | 抽出モード: single、range、all |
| frameNumber | number | いいえ | 0 | single モードで抽出するフレームのインデックス(0 始まり) |
| frameStart | number | いいえ | 0 | range モードの開始フレームインデックス(0 始まり) |
| frameEnd | number | いいえ | - | range モードの終了フレームインデックス(0 始まり、含む) |
| extractFormat | string | いいえ | "png" | 抽出フレームの形式: png、webp |
回転モードのパラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| angle | number | いいえ | - | 回転角度: 90、180、または 270 度 |
| flipH | boolean | いいえ | false | 水平方向に反転 |
| flipV | boolean | いいえ | 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パラメーターも使用できます。rangeまたはallを指定したextractモードでは、出力は個々のフレームを含む ZIP ファイルになります。rotateモードでは、各フレームが個別に処理され、アニメーションに再構成されます。loopパラメーターは、出力 GIF がループする回数を制御します。無限ループには 0 を使用します。- info レスポンスの
durationフィールドは、アニメーション全体の再生時間(ミリ秒)です。
