Обновлена: 18 августа 2023 г. в 14:22
Методы обработки изображений
Метод improve
применяется для улучшения фотографий.
Авторизационные данные передаются в строке запроса:
Параметр | Тип | Значение |
---|---|---|
oauth_token | string | OAuth2 access token (required non-empty) |
oauth_provider | string | Провайдер OAuth2 (required non-empty) |
Поддерживаемые провайдеры OAuth2:
Провайдер | Значение oauth_provider | Получение токена |
---|---|---|
VK Cloud | mcs | Смотрите в статье |
Параметры запроса передаются в формате JSON в теле запроса с name="meta"
:
Параметр | Тип | Значение |
---|---|---|
mode | []string | Типы объектов, которые требуется искать на переданных изображениях (required non-empty) |
images | []image_meta | Метаданные передаваемых изображений (required non-empty) |
rfactor | int | Коэффициент увеличения разрешения, может принимать значения либо 2, либо 4 (required non-empty for resolution mode) |
rtype | string | Тип изображения, art или photo (required non-empty for resolution mode) |
Возможные значения mode
:
Параметр | Значение |
---|---|
improve | Восстановление фотографий |
resolution | Увеличение разрешения |
Параметры image_meta
:
Параметр | Тип | Значение |
---|---|---|
name | string | Имена файлов для сопоставления файлов в запросе и ответе (required non-empty) |
Изображения передаются в теле запроса, значения поля name
должны соответствовать переданным в images
.
Окрашивание и улучшение качества ч/б изображения:
1curl -X 'POST' 'https://smarty.mail.ru/api/v1/photo/improve?oauth_token=<ваш токен>&oauth_provider=mcs' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -F 'file=@photo_imrove_improve_ok.jpg;type=image/jpeg' -F 'meta={ 2 "mode": [ 3 "improve" 4 ], 5 "images": [ 6 { 7 "name": "file" 8 } 9 ] 10}'
Параметр | Тип | Значение |
---|---|---|
status | int | 200 в случае успеха, иначе описание ошибки будет в body |
body | string | Тело ответа |
Параметры response
:
Параметр | Тип | Значение |
---|---|---|
improve | []improve_object | Массив ответов для improve mode |
resolution | []resolution_object | Массив ответов для resolution mode |
Параметры improve_object
:
Параметр | Тип | Значение |
---|---|---|
status | enum | Результат выполнения |
error | string | Текстовое описание ошибки (optional) |
name | string | Имя файла для сопоставления файлов в запросе и ответе |
improved | string | Jpeg картинка фотографии с исправленными дефектами (base64). Поле может отсутствовать или быть пустым, если по мнению алгоритма фотографию нет смысла восстанавливать (она и так хороша) |
colorized_improved | string | Jpeg картинка фотографии с исправленными дефектами и восстановленным цветом (base64). Поле может отсутствовать или быть пустым, если по мнению алгоритма фотографию нет смысла восстанавливать и закрашивать |
colorized | string | Jpeg картинка фотографии с восстановленным цветом (base64) |
bw | bool | True — алгоритм считает, что ему дали на вход чёрно-белую фотографию, false — алгоритм считает, что ему дали на вход цветную фотографию |
Параметры resolution_object
:
Параметр | Тип | Значение |
---|---|---|
status | enum | Результат выполнения: - 0 — успешно;- 1 — перманентная ошибка;- 2 — временная ошибка |
error | string | Текстовое описание ошибки (optional) |
name | string | Имя файла для сопоставления файлов в запросе и ответе |
resolved | string | Jpeg картинка фотографии с увеличенным разрешением (base64) |
1{ 2 "status": 200, 3 "body": { 4 "improve": [ 5 { 6 "status": 0, 7 "name": "file", 8 "improved": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgrdN6OW4fD17xGW9rNFH51rZO6fc/wBJl/eVinwtrWeShPc10C/8gt6wK8CGx3H/2Q==", 9 "colorized_improved": "/9j/4AAQSkZJRgABAQAAAQABAAD/8AXKOs6NWdR22KdVvT+ugy3tZoo/OtbJ3T7n+ky/vKxT4W1rPJQnua6Bf+QW9YFelTWhnY/9k=", 10 "colorized": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/XQZb2s0UfnWtk7p9z/SZf3lYp8La1nkoT3NdAv/ILesCvUpK6IP/Z", 11 "bw": true 12 } 13 ] 14 }, 15 "htmlencoded": false, 16 "last_modified": 0 17}
Пример запроса:
1curl -X 'POST' \ 2 'https://smarty.mail.ru/api/v1/photo/improve?oauth_token=<ваш токен>&oauth_provider=mcs' \ 3 -H 'accept: application/json' \ 4 -H 'Content-Type: multipart/form-data' \ 5 -F 'file=@photo_imrove_resolution_ok.jpeg;type=image/jpeg' \ 6 -F 'meta={ 7 "mode": [ 8 "resolution" 9 ], 10 "rfactor": 2, 11 "rtype": "photo", 12 "images": [ 13 { 14 "name": "file" 15 } 16 ] 17}'
Пример ответа:
1{ 2 "status": 200, 3 "body": { 4 "resolution": [ 5 { 6 "status": 0, 7 "name": "file", 8 "resolved": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/6a+9FFZSSUj0MPqf/9k=" 9 } 10 ] 11 }, 12 "htmlencoded": false, 13 "last_modified": 0 14}
Пример запроса:
1curl -X 'POST' 'https://smarty.mail.ru/api/v1/photo/improve?oauth_token=<ваш токен>&oauth_provider=mcs' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -F 'file=@photo_imrove_resolution_ok.jpeg;type=image/jpeg' -F 'meta={ 2 "mode": [ 3 "resolution" 4 ], 5 "rfactor": 1010, 6 "rtype": "photo", 7 "images": [ 8 { 9 "name": "file" 10 } 11 ] 12}'
Пример ответа:
1{ 2 "status": 400, 3 "body": "rfactor must be 2 or 4", 4 "htmlencoded": false, 5 "last_modified": 0 6}
Пример запроса:
1curl -X 'POST' 'https://smarty.mail.ru/api/v1/photo/improve?oauth_token=<ваш токен>&oauth_provider=mcs' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -F 'file=@empty.jpg;type=image/jpeg' -F 'meta={ 2 "mode": [ 3 "resolution" 4 ], 5 "rfactor": 2, 6 "rtype": "photo", 7 "images": [ 8 { 9 "name": "file" 10 } 11 ] 12}'
Пример ответа:
1{ 2 "status": 400, 3 "body": "empty image", 4 "htmlencoded": false, 5 "last_modified": 0 6}
Пример запроса:
1curl -X 'POST' 'https://smarty.mail.ru/api/v1/photo/improve?oauth_token=<ваш токен>&oauth_provider=mcs' -H 'accept: application/json' -H 'Content-Type: multipart/form-data' -F 'file=@photo_imrove_resolution_ok.jpeg;type=image/jpeg' -F 'meta={ 2 "mode": [ 3 "resolution" 4 ], 5 "rfactor": 2, 6 "rtype": "photo", 7 "images": [ 8 { 9 "name": "file1" 10 } 11 ] 12}'
Пример ответа:
1{ 2 "status": 400, 3 "body": "could not get image by name file1: http: no such file", 4 "htmlencoded": false, 5 "last_modified": 0 6}