Search K
Инструменты GIF
Изменяйте размер, оптимизируйте, меняйте скорость, реверсируйте, извлекайте кадры и поворачивайте анимированные GIF. Предоставляет несколько режимов работы в одном инструменте.
Конечная точка API
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 (отсчёт с 0) |
| frameStart | number | Нет | 0 | Индекс начального кадра для режима range (отсчёт с 0) |
| frameEnd | number | Нет | - | Индекс конечного кадра для режима range (отсчёт с 0, включительно) |
| 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задержки кадров делятся на коэффициент скорости. Минимальная задержка на кадр составляет 20 мс (ограничение спецификации GIF). - В режиме
reverseтакже доступен параметрspeedFactorдля одновременной регулировки скорости при реверсе. - В режиме
extractсrangeилиallвывод представляет собой ZIP-файл с отдельными кадрами. - В режиме
rotateкаждый кадр обрабатывается отдельно и вновь собирается в анимацию. - Параметр
loopуправляет тем, сколько раз повторяется выходной GIF. Используйте 0 для бесконечного повтора. - Поле
durationв ответе info представляет собой общую длительность анимации в миллисекундах.
