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

GIF Tools

Змінюйте розмір, оптимізуйте, змінюйте швидкість, реверсуйте, витягуйте кадри та обертайте анімовані GIF. Надає кілька режимів роботи в одному інструменті.

API Endpoint

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

Параметри

Загальні параметри

ПараметрТипОбовʼязковийЗа замовчуваннямОпис
modestringНі"resize"Режим роботи: resize, optimize, speed, reverse, extract, rotate
loopnumberНі0Кількість повторів вихідного GIF (0 = нескінченно, 1-100 = скінченна кількість повторів)

Параметри режиму зміни розміру

ПараметрТипОбовʼязковийЗа замовчуваннямОпис
widthintegerНі-Цільова ширина в пікселях (від 1 до 16384)
heightintegerНі-Цільова висота в пікселях (від 1 до 16384)
percentagenumberНі-Масштабувати у відсотках (від 1 до 500). Замінює width/height, якщо задано.

Параметри режиму оптимізації

ПараметрТипОбовʼязковийЗа замовчуваннямОпис
colorsnumberНі256Максимальна кількість кольорів у палітрі (від 2 до 256)
dithernumberНі1.0Сила дизерингу (від 0 до 1, де 0 вимикає дизеринг)
effortnumberНі7Рівень зусиль оптимізації (від 1 до 10, вище = повільніше, але менше)

Параметри режиму швидкості

ПараметрТипОбовʼязковийЗа замовчуваннямОпис
speedFactornumberНі1.0Множник швидкості (від 0.1 до 10). Значення > 1 прискорюють, < 1 сповільнюють.

Параметри режиму витягування

ПараметрТипОбовʼязковийЗа замовчуваннямОпис
extractModestringНі"single"Режим витягування: single, range, all
frameNumbernumberНі0Індекс кадру для витягування в режимі single (з нуля)
frameStartnumberНі0Індекс початкового кадру для режиму range (з нуля)
frameEndnumberНі-Індекс кінцевого кадру для режиму range (з нуля, включно)
extractFormatstringНі"png"Формат витягнутих кадрів: png, webp

Параметри режиму обертання

ПараметрТипОбовʼязковийЗа замовчуваннямОпис
anglenumberНі-Кут обертання: 90, 180 або 270 градусів
flipHbooleanНіfalseВіддзеркалити по горизонталі
flipVbooleanНі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 для одночасного регулювання швидкості під час реверсування.
  • У режимі extract з range або all вивід — це ZIP-файл, що містить окремі кадри.
  • У режимі rotate кожен кадр обробляється окремо та знову складається в анімацію.
  • Параметр loop контролює, скільки разів повторюється вихідний GIF. Використовуйте 0 для нескінченного повторення.
  • Поле duration у відповіді info — це загальна тривалість анімації в мілісекундах.