Уникализация фото
Уникализация папок
История загрузок
0 шт.
Оплата
20 кр.
API
Поддержка
Зарегистрируйтесь и получите в подарок 50 кредитов!
Создание новой задачи для уникализации одного фото
|
Асинхронный метод. Создает задачу по уникализации и ставит ее в очередь. В ответе вам вернется ID задачи по которому вы сможете получить прямые ссылки на скачивание изображений (без архивов) POST https://pixflow.ru/api/v1/task-create/single HEADER Content-Type: multipart/form-data HEADER Authorization: Bearer {ваш токен} |
|
|---|---|
| Параметр | Описание |
|
image
file
|
Изображение |
|
copies_amount
int
|
Количество копий изображения
По умолчанию: 1
Максимальное значение: 500
|
|
image_names
int
|
Имена файлов
Возможные значения:
|
|
prefix
string
|
Префикс добавляется к названию файлов и папок (зависит от настройки расположения файлов).
Может содержать только буквы, цифры, пробелы и следующие символы: «_», «-», «.»
Например: «new_»
По умолчанию пустая строка (не используется)
|
|
converting_format
int
|
Конвертация
Возможные значения:
|
|
exif_mode
int
|
Exif данные
Возможные значения:
Важно! EXIF данные поддерживают только JPEG изображения |
|
exif_template_id
int
|
ID EXIF шаблона из этого справочника
Нужно указывать только при значении параметра exif_mode = 4
По умолчанию: 0
|
|
rotate
json
|
Поворот изображения
Значения от 0 до 10
Наилучший результат: от 1 до 2 градусов
По умолчанию: {"enable": false, "from": 1, "to": 2}
|
|
resize
json
|
Ресайз изображения
Значения от 0 до 20
Наилучший результат: от 5 до 10
По умолчанию:
{"enable": true, "max_side": 2000, "mode": 1, "from": 5, "to": 10} max_side может быть в интервале от 1000 до 5000
Возможные значения mode:
|
|
crop
json
|
Обрезка изображения
Значения от 0 до 49
Наилучший результат: от 1 до 3
По умолчанию: {"enable": false, "mode": 1, "from": 1, "to": 3}
Возможные значения mode:
|
|
sharpen
json
|
Резкость
Значения от 0 до 10
Наилучший результат: от 1 до 5
По умолчанию: {"enable": true, "from": 1, "to": 5}
|
|
brightness
json
|
Яркость
Значения от -100 до 100
Наилучший результат: от -5 до 5
По умолчанию: {"enable": true, "from": -5, "to": 5}
|
|
saturation
json
|
Насыщенность
Значения от -100 до 100
Наилучший результат: от -20 до 20
По умолчанию: {"enable": true, "from": -20, "to": 20}
|
|
hue
json
|
Оттенок
Значения от -100 до 100
Наилучший результат: от -5 до 5
По умолчанию: {"enable": false, "from": -5, "to": 5}
|
|
noise
json
|
Шум
По умолчанию: {"enable": true, "mode": 1, "intensity": 10}
Возможные значения параметра mode:
Параметр intensity может принимать значения от 1 до 100
|
|
reflection_mode
int
|
Отражение
Возможные значения:
|
|
auto_tune
int
|
Система будет автоматически корректировать некоторые настройки исходя из параметров изображения: размер, вес, формат, цвет и т.д. Благодаря этой настройке можно получить лучшее соотношение уникальности и качества
Возможные значения:
|
|
auto_start
int
|
Автоматический запуск задачи сразу после создания.
Если значение = 0, то задача не будет запущена автоматически и это позволит
сначала запрость информацию о ней, включая стоимость, при помощи метода /tasks.
Если параметр = 0, то задачу надо запускать вручную, используя метод /task/run
Возможные значения:
|
| Ответы | |
|---|---|
| Код | Ответ |
| 200 |
|
| 200 |
|
//Ссылка
$api_url = 'https://pixflow.ru/api/v1/task-create/single';
//Токен авторизации из личного кабинета: https://pixflow.ru/user/api
$api_token = "jgcJkV7fSV2KzHyzmdIV4pS5VHshgbsOsRg26wQRd5AxRGIpJF";
//Заголовки
$headers = [
'Content-Type: multipart/form-data',
'Authorization: Bearer '.$api_token
];
//Параметры запроса (минимально необходимый вариант)
$data = [
'copies_amount' => 1,
'image' => curl_file_create(__DIR__.'/../../image_1.jpg'),
];
//Параметры запроса (расширенный вариант)
$data = [
'copies_amount' => 1,
'image_names' => 1,
'prefix' => '',
'converting_format' => 1,
'exif_mode' => 1,
'exif_template_id' => 0,
'image' => curl_file_create(__DIR__.'/../../image_1.jpg'),
'rotate' => json_encode(['enable' => false, 'from' => 1, 'to' => 2]),
'resize' => json_encode(['enable' => true, 'mode' => 1, 'max_side' => 2000, 'from' => 1, 'to' => 2]),
'crop' => json_encode(['enable' => true, 'mode' => 1, 'from' => 1, 'to' => 3]),
'sharpen' => json_encode(['enable' => true, 'from' => 1, 'to' => 5]),
'brightness' => json_encode(['enable' => true, 'from' => -10, 'to' => 10]),
'saturation' => json_encode(['enable' => true, 'from' => -20, 'to' => 20]),
'hue' => json_encode(['enable' => true, 'from' => -5, 'to' => 5]),
'noise' => json_encode(['enable' => true, 'mode' => 1, 'intensity' => 10]),
'reflection_mode' => 0,
'auto_tune' => 1,
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if($http_code !== 200)
exit('['.$http_code.'] Ошибка запроса');
if(!$json = json_decode($response))
exit('Ошибка декодирования данных');
if($json->type == 'error'){
foreach($json->errors as $error)
echo $error.PHP_EOL;
exit;
}
echo 'Задача успешно создана. Её UID: '.$json->task_uid;
import requests
import json
import os
import sys
# Ссылка
api_url = "https://pixflow.ru/api/v1/task-create/single"
# Токен авторизации из личного кабинета: https://pixflow.ru/user/api
api_token = "jgcJkV7fSV2KzHyzmdIV4pS5VHshgbsOsRg26wQRd5AxRGIpJF"
# Заголовки запроса
headers = {
"Authorization": f"Bearer {api_token}",
}
# Параметры запроса (минимально необходимый вариант)
# data = {
# "copies_amount": 5,
# }
# Параметры запроса (расширенный вариант)
data = {
"copies_amount": 5,
"file_location": 1,
"image_names": 2,
"prefix": "new_",
"converting_format": 1,
"exif_mode": 1,
# "exif_template_id": 0,
"rotate": json.dumps({"enable": True, "from": 1, "to": 2}),
"resize": json.dumps({"enable": True, "max_side": 2000, "mode": 1, "from": 1, "to": 2}),
"crop": json.dumps({"enable": True, "mode": 2, "from": 3, "to": 4}),
"sharpen": json.dumps({"enable": True, "from": 5, "to": 6}),
"brightness": json.dumps({"enable": True, "from": 7, "to": 8}),
"saturation": json.dumps({"enable": True, "from": 9, "to": 10}),
"hue": json.dumps({"enable": True, "from": 11, "to": 12}),
"noise": json.dumps({"enable": True, "mode": 2, "intensity": 25}),
"reflection_mode": 1,
"auto_tune": 1,
# "auto_start": 0,
}
# Путь к изображению
img_path = os.path.join(os.path.dirname(__file__), "../..", "image_1.jpg")
# Проверяем существование файла
if not os.path.exists(img_path):
print(f"Файл не найден: {img_path}")
sys.exit()
f = open(img_path, "rb")
files = {"image": f}
# Отправляем запрос
try:
response = requests.post(api_url, headers=headers, data=data, files=files)
http_code = response.status_code
resp_text = response.text
except Exception as e:
print("Ошибка при выполнении запроса: ", e)
sys.exit()
finally:
f.close()
if http_code != 200:
print(f"[{http_code}] Ошибка запроса")
sys.exit()
try:
json_resp = response.json()
except json.JSONDecodeError:
print("Ошибка декодирования ответа")
sys.exit()
if json_resp.get("type") == "error":
for err in json_resp.get("errors", []):
print(err)
sys.exit()
task_uid = json_resp.get("task_uid")
print(f"Задача успешно создана. Её UID: {task_uid}")
const axios = require("axios");
const FormData = require("form-data");
const fs = require("fs");
const path = require("path");
//Ссылка
const api_url = "https://pixflow.ru/api/v1/task-create/single";
//Токен авторизации из личного кабинета: https://pixflow.ru/user/api
const api_token = "jgcJkV7fSV2KzHyzmdIV4pS5VHshgbsOsRg26wQRd5AxRGIpJF";
(async() => {
try{
const form = new FormData();
form.append("copies_amount", 5);
form.append("file_location", 1);
form.append("image_names", 2);
form.append("prefix", "new_");
form.append("converting_format", 1);
form.append("exif_mode", 1);
form.append("rotate", JSON.stringify({ enable: true, from: 1, to: 2 }));
form.append("resize", JSON.stringify({ enable: true, max_side: 2000, mode: 1, from: 1, to: 2 }));
form.append("crop", JSON.stringify({ enable: true, mode: 2, from: 3, to: 4 }));
form.append("sharpen", JSON.stringify({ enable: true, from: 5, to: 6 }));
form.append("brightness", JSON.stringify({ enable: true, from: 7, to: 8 }));
form.append("saturation", JSON.stringify({ enable: true, from: 9, to: 10 }));
form.append("hue", JSON.stringify({ enable: true, from: 11, to: 12 }));
form.append("noise", JSON.stringify({ enable: true, mode: 2, intensity: 25 }));
form.append("reflection_mode", 1);
form.append("auto_tune", 1);
//Добавляем изображение
let imagePath = path.join(__dirname, "../../image_1.jpg");
if(fs.existsSync(imagePath))
form.append(`image`, fs.createReadStream(imagePath));
const response = await axios.post(api_url, form, {
headers: {
...form.getHeaders(),
Authorization: `Bearer ${api_token}`,
},
});
if(response.data.type === "error") {
console.error("Ошибка:");
response.data.errors.forEach(err => console.error(" -", err));
return;
}
const taskUid = response.data.task_uid;
console.log(`Задача успешно создана. Её UID: ${taskUid}`);
} catch(err){
if(err.response){
console.error("[" + err.response.status + "] Ошибка запроса");
} else {
console.error("Ошибка: ", err.message);
}
}
})();
#Минимальный вариант с настройками по умолчанию
curl -k -X POST 'https://pixflow.ru/api/v1/task-create/single' \
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: Bearer jgcJkV7fSV2KzHyzmdIV4pS5VHshgbsOsRg26wQRd5AxRGIpJF' \
-F 'copies_amount=1' \
-F 'image=@/path/to/image.jpg'
#Расширенный вариант
curl -k -X POST 'https://pixflow.ru/api/v1/task-create/single' \
-H 'Content-Type: multipart/form-data' \
-H 'Authorization: Bearer jgcJkV7fSV2KzHyzmdIV4pS5VHshgbsOsRg26wQRd5AxRGIpJF' \
-F 'copies_amount=1' \
-F 'image_names=1' \
-F 'converting_format=1' \
-F 'exif_mode=1' \
-F 'exif_template_id=0' \
-F 'image=@/path/to/image.jpg' \
-F 'rotate={"enable":false,"from":1,"to":2}' \
-F 'resize={"enable":true,"max_side":2000,"mode":1,"from":1,"to":2}' \
-F 'crop={"enable":true,"mode":1,"from":1,"to":3}' \
-F 'sharpen={"enable":true,"from":1,"to":5}' \
-F 'brightness={"enable":true,"from":-10,"to":10}' \
-F 'saturation={"enable":true,"from":-20,"to":20}' \
-F 'hue={"enable":true,"from":-5,"to":5}' \
-F 'noise={"enable":true,"mode":1,"intensity":10}' \
-F 'reflection_mode=0' \
-F 'auto_tune=1'