Введение

Для использования в API подходят:

  1. Шаблоны собственного изготовления
  2. Готовые шаблоны из приложения Photo Lab
  3. Комбинации шаблонов из приложения Photo Lab
  4. Совместное использование материалов из первых трех пунктов

Шаблоны собственного изготовления можно создать с помощью Photoshop и Конструктора шаблонов (скачать).

Для того, чтобы использовать готовый шаблон из приложения Photo Lab, выберите нужный шаблон в мобильном приложении и найдите его в id в таблице по данной ссылке.

Чтобы получить id необходимой комбинации, воспользуйтесь мобильным приложением. Пример показан в скринкасте ниже.

Для того, чтобы определить шаблоны, из которых состоит комбинация, обратитесь к разделу Получение списка шаблонов для комбинации.

Для работы с API можно реализовать необходимую логику самостоятельно, опираясь на приведенную ниже документацию, либо использовать готовую python-библиотеку, которую можно взять здесь.

Работа с API

Для использования серверного API вам потребуется:

Загрузить ресурсы шаблона (архив resources.zip, полученный с помощью "Конструктора шаблонов") на сервер и получить template_name шаблона.

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

curl -v -X POST "http://api-proxy-soft.photolab.me/template_upload.php" \
        -F resources=@./resources.zip

Пример ответа:

 SOME_TEMPLATE_NAME

Каждый запрос генерирует новое название шаблона. В дальнейшем это имя можно использовать неограниченное число раз.

Пример файла ресурсов для экспериментов: resources.zip

Получить URL изображения, используя следующий запрос:

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

curl -v -X POST "http://upload-soft.photolab.me/upload.php" \
  -F file1=@./girl.jpg \
  -F no_resize=1

Пример ответа:

 http://soft.photolab.me/samples/girl.jpg

Можно использовать любой другой URL изображения, например http://soft.photolab.me/samples/girl.jpg

Запустить обработку, передать template_name шаблона и URL изображения. В ответ вы получите URL результата.

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

curl -v -X POST "http://api-soft.photolab.me/template_process.php" \
    -F image_url[1]=http://soft.photolab.me/samples/girl.jpg \
    -F rotate[1]=0 \
    -F flip[1]=0 \
    -F crop[1]=0,0,1,1 \
    -F template_name="SOME_TEMPLATE_NAME"

Пример ответа:

 http://soft.photolab.me/samples/boy.jpg

Для обработки других фотографий достаточно менять значение поля image_url[1]

Примечание: Для анимированного шаблона дополнительно надо при обработке передать флаг animated="1".

curl -v -X POST "http://api-soft.photolab.me/template_process.php" \
    -F image_url[1]=http://soft.photolab.me/samples/girl.jpg \
    -F template_name="SOME_TEMPLATE_NAME" -F animated="1"

Запустить обработку с помощью шаблонов photolab, передать template_name шаблона и URL изображения. В ответ вы получите URL результата.

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

curl -v -X POST "http://api-soft.photolab.me/template_process.php" \
    -F image_url[1]=http://soft.photolab.me/samples/girl.jpg \
    -F rotate[1]=0 \
    -F flip[1]=0 \
    -F crop[1]=0,0,1,1 \
    -F template_name="1668"

Пример ответа:

http://soft.photolab.me/samples/boy.jpg

Для обработки одной фотографий нужно передать поле image_url[1]. Для обработки нескольких фотографий следует передавать поля image_url[1], image_url[2].

Получение списка шаблонов для комбинации

Для получения списка шаблонов, которые были использованы при создании комбинации, например https://photolab.me/d/3124589, нужно передать идентификатор комбинации 3124589. Вместе с идентификаторами шаблонов будут возвращены URL фотографий, используемых на соответсвующем шагу комбинации совместо с пользовательской (фоны и т.п.).

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

curl -v -X POST "http://api-soft.photolab.me/photolab_steps_advanced.php" \
    -F combo_id="3124589"

Пример json ответа:

{
    "steps": [{
        "id": 1978,
        "image_urls": ["", "https://storage.ws.pho.to/s2/92862842a56a288ea35c73f81fa8849bd84eed2b.jpeg"]
    }, {
        "id": 2218,
        "image_urls": []
    }, {
        "id": 2275,
        "image_urls": []
    }, {
        "id": 2174,
        "image_urls": []
    }]
}

Здесь:

  • steps - массив шагов. Для получения итогофого фото требуется последовательно выполнить все шаги, подав на вход первого шага исходную фотографию и затем передавая результат текущего шага на вход следующего.
  • id - идентификатор шаблона, использованного на данном шаге.
  • image_urls - если на данном шаге шаблон требует на вход N (N≥2) фото, то в этом поле указывается (N-1) адресов фото, которые следует использовать при обработке совместно с фото пользователя. Пустой элемент в массиве указывает позицию для фото пользователя. Т.о. при обработке (при вызове template_process.php) следует в параметр image_url передать массив image_urls, заменив элемент-пустую строку на URL исходной пользовательской фотографии или результата предыдущего шага.

    Если шаблон требует на вход только одну фотографию, массив image_urls будет пустым.