mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Renames 18 ambiguous or hard-to-search tool names so image tools self-qualify like the other modalities ("Compress" becomes "Compress Image"), and cleans up a few awkward names. Propagated across search (constants.ts), display (en.ts + 20 locales), the OpenAPI base spec + 20 locale specs, and the docs tool-page headings in 21 languages. Removes the duplicate "Normalize Audio" summary shared by the video and audio endpoints. Tool ids and routes are unchanged, so no API paths or bookmarks break.
6.1 KiB
6.1 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Редактирование полей метаданных EXIF, IPTC, GPS и XMP в изображениях без повторного кодирования пикселей. | 9271d3d8f278 | human | fc5a94afd201 |
Редактирование метаданных изображения
Редактируйте поля метаданных изображения, включая EXIF, IPTC, координаты GPS, даты и ключевые слова. Использует ExifTool под капотом, поэтому метаданные записываются на месте без повторного кодирования пикселей, сохраняя полное качество изображения.
Конечные точки API
Редактирование метаданных
POST /api/v1/tools/image/edit-metadata
Записывает поля метаданных в изображение и возвращает изменённый файл.
Проверка метаданных
POST /api/v1/tools/image/edit-metadata/inspect
Возвращает полные метаданные из изображения через ExifTool в виде JSON. Не изменяет изображение.
Параметры (Редактирование)
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| title | string | Нет | - | Название изображения (XMP/EXIF) |
| author | string | Нет | - | Имя автора |
| artist | string | Нет | - | Имя исполнителя (тег EXIF Artist) |
| copyright | string | Нет | - | Уведомление об авторских правах |
| imageDescription | string | Нет | - | Описание изображения (EXIF) |
| software | string | Нет | - | Тег программного обеспечения |
| dateTime | string | Нет | - | Значение EXIF DateTime |
| dateTimeOriginal | string | Нет | - | Значение EXIF DateTimeOriginal |
| setAllDates | string | Нет | - | Установить все поля дат сразу |
| dateShift | string | Нет | - | Сдвинуть все даты на смещение (формат: +HH:MM или -HH:MM) |
| clearGps | boolean | Нет | false |
Удалить все данные GPS |
| gpsLatitude | number | Нет | - | Установить широту GPS (от -90 до 90) |
| gpsLongitude | number | Нет | - | Установить долготу GPS (от -180 до 180) |
| gpsAltitude | number | Нет | - | Установить высоту GPS в метрах |
| keywords | string[] | Нет | - | Ключевые слова/теги для добавления или установки |
| keywordsMode | string | Нет | "add" |
Как обрабатывать ключевые слова: add (добавить) или set (заменить) |
| fieldsToRemove | string[] | Нет | [] |
Список конкретных имён полей метаданных для удаления |
| iptcTitle | string | Нет | - | IPTC Object Name |
| iptcHeadline | string | Нет | - | IPTC Headline |
| iptcCity | string | Нет | - | IPTC City |
| iptcState | string | Нет | - | IPTC Province/State |
| iptcCountry | string | Нет | - | IPTC Country |
Пример запроса
Установка автора и авторских прав:
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"author": "Jane Smith", "copyright": "2024 Jane Smith"}'
Установка координат GPS:
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"gpsLatitude": 48.8566, "gpsLongitude": 2.3522, "gpsAltitude": 35}'
Удаление GPS и добавление ключевых слов:
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"clearGps": true, "keywords": ["landscape", "sunset"], "keywordsMode": "add"}'
Проверка метаданных:
curl -X POST http://localhost:1349/api/v1/tools/image/edit-metadata/inspect \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg"
Пример ответа (Редактирование)
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 2452000
}
Примечания
- Этот инструмент требует установки ExifTool на сервере. Он включён в образ Docker.
- Метаданные записываются на месте, поэтому повторное кодирование пикселей не происходит. Изменение размера файла минимально (только байты метаданных).
- Параметр
dateShiftсдвигает все поля дат на указанное смещение, что полезно для исправления ошибок часового пояса (например,+02:00или-05:30). - Если изменения не запрошены (все параметры опущены или пусты), исходный файл возвращается без изменений.
- Поддерживаемые форматы: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC/HEIF.
- Для форматов, не поддерживающих предпросмотр в браузере (HEIF, TIFF), ответ включает поле
previewUrlс предпросмотром WebP.