This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Narzędzia GIF

Zmieniaj rozmiar, optymalizuj, zmieniaj prędkość, odwracaj, wyodrębniaj klatki i obracaj animowane pliki GIF. Zapewnia wiele trybów działania w jednym narzędziu.

Punkt końcowy API

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

Parametry

Wspólne parametry

ParametrTypWymaganyDomyślnieOpis
modestringNie"resize"Tryb działania: resize, optimize, speed, reverse, extract, rotate
loopnumberNie0Liczba powtórzeń wyjściowego pliku GIF (0 = nieskończenie, 1-100 = skończona liczba pętli)

Parametry trybu zmiany rozmiaru

ParametrTypWymaganyDomyślnieOpis
widthintegerNie-Docelowa szerokość w pikselach (1 do 16384)
heightintegerNie-Docelowa wysokość w pikselach (1 do 16384)
percentagenumberNie-Skalowanie procentowe (1 do 500). Nadpisuje width/height, jeśli ustawione.

Parametry trybu optymalizacji

ParametrTypWymaganyDomyślnieOpis
colorsnumberNie256Maksymalna liczba kolorów w palecie (2 do 256)
dithernumberNie1.0Siła ditheringu (0 do 1, gdzie 0 wyłącza dithering)
effortnumberNie7Poziom wysiłku optymalizacji (1 do 10, wyższy = wolniej, ale mniejszy)

Parametry trybu prędkości

ParametrTypWymaganyDomyślnieOpis
speedFactornumberNie1.0Mnożnik prędkości (0.1 do 10). Wartości > 1 przyspieszają, < 1 spowalniają.

Parametry trybu wyodrębniania

ParametrTypWymaganyDomyślnieOpis
extractModestringNie"single"Tryb wyodrębniania: single, range, all
frameNumbernumberNie0Indeks klatki do wyodrębnienia w trybie single (od 0)
frameStartnumberNie0Indeks klatki początkowej dla trybu range (od 0)
frameEndnumberNie-Indeks klatki końcowej dla trybu range (od 0, włącznie)
extractFormatstringNie"png"Format wyodrębnionych klatek: png, webp

Parametry trybu obracania

ParametrTypWymaganyDomyślnieOpis
anglenumberNie-Kąt obrotu: 90, 180 lub 270 stopni
flipHbooleanNiefalseOdbij w poziomie
flipVbooleanNiefalseOdbij w pionie

Przykładowe żądania

Zmiana rozmiaru

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

Optymalizacja

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

Przyspieszenie

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

Wyodrębnienie pojedynczej klatki

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

Przykładowa odpowiedź

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

Podtrasa Info

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

Zwraca metadane o animowanym pliku GIF bez jego przetwarzania.

Żądanie Info

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

Odpowiedź 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
}

Uwagi

  • Wykorzystuje standardową fabrykę createToolRoute dla głównego punktu końcowego przetwarzania.
  • Punkt końcowy info wymaga jedynie przesłania pliku (nie są potrzebne żadne ustawienia).
  • W trybie resize, jeśli podano percentage, ma on priorytet nad width/height. Zmiana rozmiaru używa fit: inside w celu zachowania proporcji.
  • W trybie speed opóźnienia klatek są dzielone przez współczynnik prędkości. Minimalne opóźnienie na klatkę wynosi 20 ms (ograniczenie specyfikacji GIF).
  • W trybie reverse dostępny jest również parametr speedFactor, aby jednocześnie dostosować prędkość podczas odwracania.
  • W trybie extract z range lub all wynikiem jest plik ZIP zawierający poszczególne klatki.
  • W trybie rotate każda klatka jest przetwarzana indywidualnie i ponownie składana w animację.
  • Parametr loop kontroluje, ile razy wyjściowy plik GIF się zapętla. Użyj 0 dla nieskończonego zapętlania.
  • Pole duration w odpowiedzi info to całkowity czas trwania animacji w milisekundach.