mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
69 lines
4.2 KiB
Markdown
69 lines
4.2 KiB
Markdown
---
|
|
description: "Сравнение двух изображений бок о бок с попиксельной визуализацией различий и оценкой схожести."
|
|
i18n_source_hash: cc0a02bd75c6
|
|
i18n_provenance: human
|
|
i18n_output_hash: 37164c55b935
|
|
---
|
|
|
|
# Сравнение изображений {#image-compare}
|
|
|
|
Загрузите два изображения, чтобы вычислить попиксельную карту различий и числовой процент схожести. Результат представляет собой изображение различий, выделяющее изменённые области красным цветом.
|
|
|
|
## Конечная точка API {#api-endpoint}
|
|
|
|
`POST /api/v1/tools/image/compare`
|
|
|
|
Принимает multipart-данные формы с **двумя** файлами изображений. Поле настроек не требуется.
|
|
|
|
## Параметры {#parameters}
|
|
|
|
Этот инструмент не имеет настраиваемых параметров. Загрузите ровно два файла изображений.
|
|
|
|
| Поле | Тип | Обязательный | Описание |
|
|
|-------|------|----------|-------------|
|
|
| file (первое) | file | Да | Первое изображение |
|
|
| file (второе) | file | Да | Второе изображение |
|
|
|
|
## Пример запроса {#example-request}
|
|
|
|
```bash
|
|
curl -X POST http://localhost:1349/api/v1/tools/image/compare \
|
|
-H "Authorization: Bearer si_your-api-key" \
|
|
-F "file=@original.jpg" \
|
|
-F "file=@modified.jpg"
|
|
```
|
|
|
|
## Пример ответа {#example-response}
|
|
|
|
```json
|
|
{
|
|
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
"similarity": 94.52,
|
|
"dimensions": { "width": 1920, "height": 1080 },
|
|
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/diff.png",
|
|
"originalSize": 4900000,
|
|
"processedSize": 280000
|
|
}
|
|
```
|
|
|
|
## Поля ответа {#response-fields}
|
|
|
|
| Поле | Тип | Описание |
|
|
|-------|------|-------------|
|
|
| jobId | string | Идентификатор задания для загрузки изображения различий |
|
|
| similarity | number | Процент схожести двух изображений (от 0 до 100) |
|
|
| dimensions | object | Ширина и высота, использованные для сравнения |
|
|
| downloadUrl | string | URL для загрузки сгенерированного изображения различий |
|
|
| originalSize | number | Суммарный размер обоих входных изображений в байтах |
|
|
| processedSize | number | Размер выходного изображения различий в байтах |
|
|
|
|
## Примечания {#notes}
|
|
|
|
- Оба изображения приводятся к одинаковым размерам (максимум по каждой оси) перед сравнением.
|
|
- Изображение различий выделяет отличия красным цветом с непрозрачностью, пропорциональной величине изменения. Идентичные или почти идентичные пиксели (различие < 10) отображаются как полупрозрачные версии оригинала.
|
|
- Схожесть вычисляется как обратная величина среднего попиксельного различия по всем пикселям, выраженная в процентах.
|
|
- Схожесть 100% означает, что изображения попиксельно идентичны (при разрешении сравнения).
|
|
- Вывод различий всегда в формате PNG независимо от входных форматов.
|
|
- Оба изображения проверяются и декодируются (поддерживаются HEIC, RAW, PSD, SVG) перед сравнением.
|
|
- Ориентация EXIF автоматически применяется к обоим изображениям перед обработкой.
|