VK Cloud logo
Обновлена31 октября 2023 г. в 06:09

Методы обработки изображений

Метод 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}

Некорректный rfactor

Пример запроса:

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}

Невалидный параметр meta

Пример запроса:

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}