Files
SnapOtter/apps/docs/ja/tools/image/gif-tools.md
T
SnapOtterandGitHub 4963ab3bbd feat(docs-i18n): translate all documentation into 20 languages
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
2026-07-11 13:52:47 +08:00

6.4 KiB

description, i18n_source_hash, i18n_provenance, i18n_output_hash
description i18n_source_hash i18n_provenance i18n_output_hash
アニメーション GIF のリサイズ、最適化、速度変更、逆再生、回転、フレーム抽出を 1 つのツールで行います。 5e525e80db92 human 2f1d49287380

GIF ツール

アニメーション GIF のリサイズ、最適化、速度変更、逆再生、フレーム抽出、回転を行います。1 つのツールで複数の操作モードを提供します。

API エンドポイント

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

パラメーター

共通パラメーター

パラメーター 必須 デフォルト 説明
mode string いいえ "resize" 操作モード: resizeoptimizespeedreverseextractrotate
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" 抽出モード: singlerangeall
frameNumber number いいえ 0 single モードで抽出するフレームのインデックス(0 始まり)
frameStart number いいえ 0 range モードの開始フレームインデックス(0 始まり)
frameEnd number いいえ - range モードの終了フレームインデックス(0 始まり、含む)
extractFormat string いいえ "png" 抽出フレームの形式: pngwebp

回転モードのパラメーター

パラメーター 必須 デフォルト 説明
angle number いいえ - 回転角度: 90180、または 270
flipH boolean いいえ false 水平方向に反転
flipV boolean いいえ false 垂直方向に反転

リクエスト例

リサイズ

curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "file=@animation.gif" \
  -F 'settings={"mode":"resize","percentage":50}'

最適化

curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "file=@large.gif" \
  -F 'settings={"mode":"optimize","colors":128,"effort":9}'

高速化

curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "file=@animation.gif" \
  -F 'settings={"mode":"speed","speedFactor":2.0}'

単一フレームの抽出

curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools \
  -F "file=@animation.gif" \
  -F 'settings={"mode":"extract","extractMode":"single","frameNumber":5,"extractFormat":"png"}'

レスポンス例

{
  "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 リクエスト

curl -X POST http://localhost:1349/api/v1/tools/image/gif-tools/info \
  -F "file=@animation.gif"

Info レスポンス

{
  "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 フィールドは、アニメーション全体の再生時間(ミリ秒)です。