Search K
GIF Tools
Змінюйте розмір, оптимізуйте, змінюйте швидкість, реверсуйте, витягуйте кадри та обертайте анімовані GIF. Надає кілька режимів роботи в одному інструменті.
API Endpoint
POST /api/v1/tools/image/gif-tools
Параметри
Загальні параметри
| Параметр | Тип | Обовʼязковий | За замовчуванням | Опис |
|---|---|---|---|---|
| mode | string | Ні | "resize" | Режим роботи: resize, optimize, speed, reverse, extract, rotate |
| 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" | Режим витягування: single, range, all |
| frameNumber | number | Ні | 0 | Індекс кадру для витягування в режимі single (з нуля) |
| frameStart | number | Ні | 0 | Індекс початкового кадру для режиму range (з нуля) |
| frameEnd | number | Ні | - | Індекс кінцевого кадру для режиму range (з нуля, включно) |
| extractFormat | string | Ні | "png" | Формат витягнутих кадрів: png, webp |
Параметри режиму обертання
| Параметр | Тип | Обовʼязковий | За замовчуванням | Опис |
|---|---|---|---|---|
| angle | number | Ні | - | Кут обертання: 90, 180 або 270 градусів |
| flipH | boolean | Ні | false | Віддзеркалити по горизонталі |
| flipV | boolean | Ні | 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 — це загальна тривалість анімації в мілісекундах.
