Добре дојдовте во документацијата BackgroundRemover.app API
За да добиете клуч за програмери, одете на портал за програмери
Authorization: <api_key>
Отстранете ја позадината на сликата
Отстранете ја позадината на сликата
import requests
import time
import shutil
import json
headers = {'Authorization': 'f134382194a844c8bb589af58ef283e9'}
file_list = ['testfiles/blah.jpeg', 'testfiles/blah.jpeg', 'testfiles/blah.jpeg']
params = {
'lang': 'en',
'convert_to': 'image-backgroundremover',
'ocr': False
}
api_url = 'https://api.backgroundremover.app/v1/convert/'
results_url = 'https://api.backgroundremover.app/v1/results/'
def download_file(url, local_filename):
with requests.get("https://api.backgroundremover.app/%s" % url, stream=True) as r:
with open(local_filename, 'wb') as f:
shutil.copyfileobj(r.raw, f)
return local_filename
def convert_files(api_url, params, headers):
files = [eval(f'("files", open("{file}", "rb"))') for file in file_list]
print(files)
r = requests.post(
url=api_url,
files=files,
data=params,
headers=headers
)
return r.json()
def get_results(params):
if params.get('error'):
return params.get('error')
r = requests.post(
url=results_url,
data=params
)
data = r.json()
finished = data.get('finished')
while not finished:
if int(data.get('queue_count')) > 0:
print('queue: %s' % data.get('queue_count'))
time.sleep(5)
results = get_results(params)
print(results)
results = json.dumps(results)
if results:
break
if finished:
print(data.get('files'))
for f in data.get('files'):
print(f.get('url'))
download_file("%s" % f.get('url'), "%s" % f.get('filename'))
return {"finished": "files downloaded"}
return r.json()
get_results(convert_files(api_url, params, headers))
Request:
curl -F "lang=en" -F "convert_to=image-backgroundremover" -F "files=@testfiles/blah.jpeg" -F "files=@testfiles/blah.jpeg" -F "files=@testfiles/blah.jpeg" -H "Authorization: <api_key>" https://api.backgroundremover.app/v1/convert/
Response:
{uuid: <conversion_uuid>}
Request:
curl -F "uuid=<conversion_uuid>" -H "Authorization: <api_key>" https://api.backgroundremover.app/v1/results/
Response:
{"files": [{"url": <url>, filename: <filename>}], "failed": [], "finished": true, "queue_count": 0, "errors": []}
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$headers = array("Authorization: <api_key>");
$file_list = ['testfiles/blah.jpeg', 'testfiles/blah.jpeg', 'testfiles/blah.jpeg'];
$api_url = 'https://api.backgroundremover.app/v1/convert/';
$results_url = 'https://api.backgroundremover.app/v1/results/';
$post_data = [];
function download_file($url, $filename){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
$data = curl_exec($curl);
$error = curl_error($curl);
curl_close ($curl);
$file = fopen("./testfiles/$filename", "w+");
fputs($file, $data);
fclose($file);
}
function convert_files($file_list, $headers, $api_url) {
$post_data['lang'] = 'en';
$post_data['convert_to'] = 'image-backgroundremover';
foreach ($file_list as $index => $file) {
$post_data['file[' . $index . ']'] = curl_file_create(
realpath($file),
mime_content_type($file),
basename($file)
);
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($curl);
curl_close($curl);
print($content);
return $content;
}
function get_results($params, $api_url, $headers) {
$error = json_decode($params);
print_r($params);
print_r($error);
if ($error->error) {
print_r($error->error);
return;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = json_decode(curl_exec($curl));
curl_close($curl);
while (!$content->finished) {
if (intval($content->queue_count) > 0) {
print_r("queue: $content->queue_count");
}
sleep(5);
$results = get_results($params, $api_url, $headers);
}
foreach ($content->files as $f) {
download_file($f->url, $f->filename);
}
}
get_results(convert_files($file_list, $headers, $api_url), $api_url, $headers);
?>
const request = require('request');
const fs = require('fs');
const { initParams } = require('request');
let file_list = ['testfiles/blah.jpeg']
const api_url = 'https://api.backgroundremover.app/v1/convert/'
const results_url = 'https://api.backgroundremover.app/v1/results/'
function convertFiles(file_list) {
let formData = {
'lang': 'en',
'convert_to': 'image-backgroundremover'
};
for (var i = 0; i < file_list.length; i ++) {
formData['files'] = fs.createReadStream(file_list[i]);
}
request({
url: api_url,
method: 'post',
formData: formData,
headers: {
'Authorization': '<api_key>',
"Content-Type": "multipart/form-data",
}
}, function(e, r, body) {
getResults(JSON.parse(body));
});
}
function getResults(data) {
if (data.error) {
return data.error;
}
request({
url: results_url,
method: 'post',
formData: data
}, function(e, r, body) {
response = JSON.parse(body);
if (!response.finished) {
setTimeout(
function() {
getResults(data);
}, 1000
);
}
console.log(response);
})
}
convertFiles(file_list);
Ќе се врати
/path/to/local/file_processed.png
За да направите повеќекратни, едноставно ставете повеќе датотеки во вашата листа
Отстранете ја позадината на видеото
Отстранете ја позадината на видеото
import requests
import time
import shutil
import json
headers = {'Authorization': 'f134382194a844c8bb589af58ef283e9'}
file_list = ['testfiles/blah.mp4', 'testfiles/blah.mp4', 'testfiles/blah.mp4']
params = {
'lang': 'en',
'convert_to': 'video-backgroundremover',
'ocr': False
}
api_url = 'https://api.backgroundremover.app/v1/convert/'
results_url = 'https://api.backgroundremover.app/v1/results/'
def download_file(url, local_filename):
with requests.get("https://api.backgroundremover.app/%s" % url, stream=True) as r:
with open(local_filename, 'wb') as f:
shutil.copyfileobj(r.raw, f)
return local_filename
def convert_files(api_url, params, headers):
files = [eval(f'("files", open("{file}", "rb"))') for file in file_list]
print(files)
r = requests.post(
url=api_url,
files=files,
data=params,
headers=headers
)
return r.json()
def get_results(params):
if params.get('error'):
return params.get('error')
r = requests.post(
url=results_url,
data=params
)
data = r.json()
finished = data.get('finished')
while not finished:
if int(data.get('queue_count')) > 0:
print('queue: %s' % data.get('queue_count'))
time.sleep(5)
results = get_results(params)
print(results)
results = json.dumps(results)
if results:
break
if finished:
print(data.get('files'))
for f in data.get('files'):
print(f.get('url'))
download_file("%s" % f.get('url'), "%s" % f.get('filename'))
return {"finished": "files downloaded"}
return r.json()
get_results(convert_files(api_url, params, headers))
Request:
curl -F "lang=en" -F "convert_to=video-backgroundremover" -F "files=@testfiles/blah.jpeg" -F "files=@testfiles/blah.jpeg" -F "files=@testfiles/blah.jpeg" -H "Authorization: <api_key>" https://api.backgroundremover.app/v1/convert/
Response:
{uuid: <conversion_uuid>}
Request:
curl -F "uuid=<conversion_uuid>" -H "Authorization: <api_key>" https://api.backgroundremover.app/v1/results/
Response:
{"files": [{"url": <url>, filename: <filename>}], "failed": [], "finished": true, "queue_count": 0, "errors": []}
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$headers = array("Authorization: <api_key>");
$file_list = ['testfiles/blah.mp4', 'testfiles/blah.mp4', 'testfiles/blah.mp4'];
$api_url = 'https://api.backgroundremover.app/v1/convert/';
$results_url = 'https://api.backgroundremover.app/v1/results/';
$post_data = [];
function download_file($url, $filename){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
$data = curl_exec($curl);
$error = curl_error($curl);
curl_close ($curl);
$file = fopen("./testfiles/$filename", "w+");
fputs($file, $data);
fclose($file);
}
function convert_files($file_list, $headers, $api_url) {
$post_data['lang'] = 'en';
$post_data['convert_to'] = 'video-backgroundremover';
foreach ($file_list as $index => $file) {
$post_data['file[' . $index . ']'] = curl_file_create(
realpath($file),
mime_content_type($file),
basename($file)
);
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($curl);
curl_close($curl);
print($content);
return $content;
}
function get_results($params, $api_url, $headers) {
$error = json_decode($params);
print_r($params);
print_r($error);
if ($error->error) {
print_r($error->error);
return;
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = json_decode(curl_exec($curl));
curl_close($curl);
while (!$content->finished) {
if (intval($content->queue_count) > 0) {
print_r("queue: $content->queue_count");
}
sleep(5);
$results = get_results($params, $api_url, $headers);
}
foreach ($content->files as $f) {
download_file($f->url, $f->filename);
}
}
get_results(convert_files($file_list, $headers, $api_url), $api_url, $headers);
?>
const request = require('request');
const fs = require('fs');
const { initParams } = require('request');
let file_list = ['testfiles/blah.mp4']
const api_url = 'https://api.backgroundremover.app/v1/convert/'
const results_url = 'https://api.backgroundremover.app/v1/results/'
function convertFiles(file_list) {
let formData = {
'lang': 'en',
'convert_to': 'video-backgroundremover'
};
for (var i = 0; i < file_list.length; i ++) {
formData['files'] = fs.createReadStream(file_list[i]);
}
request({
url: api_url,
method: 'post',
formData: formData,
headers: {
'Authorization': '<api_key>',
"Content-Type": "multipart/form-data",
}
}, function(e, r, body) {
getResults(JSON.parse(body));
});
}
function getResults(data) {
if (data.error) {
return data.error;
}
request({
url: results_url,
method: 'post',
formData: data
}, function(e, r, body) {
response = JSON.parse(body);
if (!response.finished) {
setTimeout(
function() {
getResults(data);
}, 1000
);
}
console.log(response);
})
}
convertFiles(file_list);
Ќе се врати
/path/to/local/file_processed.mov
/path/to/local/file_processed.gif
За да направите повеќекратни, едноставно ставете повеќе датотеки во вашата листа