This page was machine-translated. Spotted a mistake?Help improve it.
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 "[email protected]" \
  -F 'settings={"mode":"resize","percentage":50}'

Optimize

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

Speed Up

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

Extract Single Frame

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

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 "[email protected]"

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.