Halaman ini diterjemahkan secara otomatis. Menemukan kesalahan?Bantu perbaiki.
Skip to content

GIF Tools

Ubah ukuran, optimalkan, ubah kecepatan, balik, ekstrak frame, dan putar GIF beranimasi. Menyediakan beberapa mode operasi dalam satu alat.

API Endpoint

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

Parameters

Common Parameters

ParameterTypeRequiredDefaultDescription
modestringNo"resize"Mode operasi: resize, optimize, speed, reverse, extract, rotate
loopnumberNo0Jumlah loop untuk GIF output (0 = tak terbatas, 1-100 = loop terbatas)

Resize Mode Parameters

ParameterTypeRequiredDefaultDescription
widthintegerNo-Lebar target dalam piksel (1 hingga 16384)
heightintegerNo-Tinggi target dalam piksel (1 hingga 16384)
percentagenumberNo-Skala berdasarkan persentase (1 hingga 500). Mengesampingkan width/height bila diatur.

Optimize Mode Parameters

ParameterTypeRequiredDefaultDescription
colorsnumberNo256Jumlah warna maksimum dalam palet (2 hingga 256)
dithernumberNo1.0Kekuatan dithering (0 hingga 1, di mana 0 menonaktifkan dithering)
effortnumberNo7Tingkat upaya optimasi (1 hingga 10, lebih tinggi = lebih lambat tetapi lebih kecil)

Speed Mode Parameters

ParameterTypeRequiredDefaultDescription
speedFactornumberNo1.0Pengali kecepatan (0.1 hingga 10). Nilai > 1 mempercepat, < 1 memperlambat.

Extract Mode Parameters

ParameterTypeRequiredDefaultDescription
extractModestringNo"single"Mode ekstraksi: single, range, all
frameNumbernumberNo0Indeks frame yang akan diekstrak dalam mode single (berbasis 0)
frameStartnumberNo0Indeks frame awal untuk mode range (berbasis 0)
frameEndnumberNo-Indeks frame akhir untuk mode range (berbasis 0, inklusif)
extractFormatstringNo"png"Format untuk frame yang diekstrak: png, webp

Rotate Mode Parameters

ParameterTypeRequiredDefaultDescription
anglenumberNo-Sudut rotasi: 90, 180, atau 270 derajat
flipHbooleanNofalseBalik horizontal
flipVbooleanNofalseBalik vertikal

Example Requests

Resize

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

Optimize

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

Speed Up

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

Extract Single Frame

bash
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"}'

Example Response

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

Info Sub-Route

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

Mengembalikan metadata tentang GIF beranimasi tanpa memprosesnya.

Info Request

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

Info Response

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
}

Notes

  • Menggunakan factory createToolRoute standar untuk endpoint pemrosesan utama.
  • Endpoint info hanya memerlukan unggahan file (tidak perlu pengaturan).
  • Dalam mode resize, bila percentage disediakan, ia diprioritaskan di atas width/height. Pengubahan ukuran menggunakan fit: inside untuk mempertahankan rasio aspek.
  • Dalam mode speed, delay frame dibagi dengan faktor kecepatan. Delay minimum per frame adalah 20ms (batasan spesifikasi GIF).
  • Dalam mode reverse, parameter speedFactor juga tersedia untuk menyesuaikan kecepatan sekaligus membalik.
  • Dalam mode extract dengan range atau all, output berupa file ZIP yang berisi frame-frame individual.
  • Dalam mode rotate, setiap frame diproses secara individual dan dirakit ulang menjadi animasi.
  • Parameter loop mengontrol berapa kali GIF output berputar. Gunakan 0 untuk perulangan tak terbatas.
  • Field duration dalam respons info adalah total durasi animasi dalam milidetik.