Ondoa mandharinyuma kutoka kwenye programu, maduka au mifumo yako mwenyewe kwa ombi moja la HTTPS.
URL ya msingi: https://bgcut.net/api/v1 · Pata ufunguo wako katika Funguo za API.
Uthibitishaji
Kila ombi lazima liwe na ufunguo wako wa API kwenye kichwa cha X-Api-Key. Funguo huundwa na kubatilishwa kwenye akaunti yako. Kila ufunguo unaweza kupewa jina, hivyo unaweza kuzibadilisha kwa kila programu.
// Never ship your API key in public front-end code – proxy through your server.
const input = document.querySelector('input[type=file]');
input.addEventListener('change', async () => {
const form = new FormData();
form.append('image_file', input.files[0]);
form.append('size', 'preview');
const res = await fetch('https://bgcut.net/api/v1/remove', { method: 'POST', headers: { 'X-Api-Key': 'bgc_YOUR_API_KEY' }, body: form });
const blob = await res.blob();
document.querySelector('img#out').src = URL.createObjectURL(blob);
});
// Java 11+ HttpClient, no external libraries
import java.net.URI;
import java.net.http.*;
import java.nio.file.*;
public class BgCut {
public static void main(String[] a) throws Exception {
String key = "bgc_YOUR_API_KEY";
String boundary = "----bgcut" + System.nanoTime();
byte[] file = Files.readAllBytes(Path.of("photo.jpg"));
String head = "--" + boundary + "\r\nContent-Disposition: form-data; name=\"image_file\"; filename=\"photo.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n";
String tail = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"size\"\r\n\r\nauto\r\n--" + boundary + "--\r\n";
byte[] body = concat(head.getBytes(), file, tail.getBytes());
HttpRequest req = HttpRequest.newBuilder(URI.create("https://bgcut.net/api/v1/remove"))
.header("X-Api-Key", key)
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
.POST(HttpRequest.BodyPublishers.ofByteArray(body)).build();
HttpResponse<byte[]> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofByteArray());
if (res.statusCode() == 200) Files.write(Path.of("result.png"), res.body());
else System.out.println(new String(res.body()));
}
static byte[] concat(byte[]... parts) { int n = 0; for (byte[] p : parts) n += p.length; byte[] out = new byte[n]; int o = 0; for (byte[] p : parts) { System.arraycopy(p, 0, out, o, p.length); o += p.length; } return out; }
}
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-Api-Key", "bgc_YOUR_API_KEY");
using var form = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(await File.ReadAllBytesAsync("photo.jpg"));
fileContent.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
form.Add(fileContent, "image_file", "photo.jpg");
form.Add(new StringContent("auto"), "size");
form.Add(new StringContent("png"), "format");
var res = await client.PostAsync("https://bgcut.net/api/v1/remove", form);
if (res.IsSuccessStatusCode)
await File.WriteAllBytesAsync("result.png", await res.Content.ReadAsByteArrayAsync());
else
Console.WriteLine(await res.Content.ReadAsStringAsync());
Faili ya picha (multipart/form-data). JPG, PNG, WebP, GIF, BMP, TIFF; upeo 25 MB / 30 MP.
image_url
string
URL ya umma ya picha itakayopakuliwa badala ya kupakiwa.
image_file_b64
string
Picha iliyosimbwa kwa base64 (kwa hiari ikiwa na kiambishi data:).
size
auto | preview | full
preview = hadi 640 px (hutumia kiwango chako cha bure cha kila mwezi, bila krediti); full = ubora wa asili (krediti 1); auto (chaguo-msingi) = full ukiwa na krediti, vinginevyo preview.
format
png | jpg | webp
Muundo wa matokeo. png huhifadhi uwazi; jpg huwekwa juu ya bg_color (chaguo-msingi ni nyeupe).
model
fast | hq | portrait
lite (chaguo-msingi, ~6 s, uwiano bora), fast (~0.5 s, ubora wa onyesho la awali), hq (~15 s, ubora wa juu kabisa), portrait (~0.3 s, watu pekee).
bg_color
string
Rangi ya mandharinyuma kwa hex, k.m. #ffffff. Iache ili kupata mandharinyuma yenye uwazi.
bg_blur
number
Hifadhi mandharinyuma asilia lakini uyafifishe kwa kipenyo hiki cha pikseli (1–200), k.m. 25 kwa mwonekano wa picha ya mtu. Hubatilisha bg_color.
crop
boolean
Kata matokeo kulingana na mipaka ya mhusika.
crop_margin
integer
Nafasi ya ziada kwa pikseli kuzunguka mhusika wakati wa kukata (0–200).
roi
string
Eneo la kuzingatiwa kama sehemu x,y,w,h (0–1). AI huangalia ndani ya mstatili huu pekee. Kila kitu nje yake kinakuwa na uwazi.
feather
number
Lainisha kingo kwa kipenyo hiki cha pikseli (0–5).
quality
integer
Ubora wa JPG/WebP 50–100 (chaguo-msingi 92).
response
binary | json
binary (chaguo-msingi) hurudisha picha; json hurudisha metadata pamoja na picha ya base64.
Majibu
Maombi yaliyofanikiwa hurudisha HTTP 200 pamoja na baiti za picha na vichwa hivi:
HTTP/1.1 200 OK
Content-Type: image/png
X-Credits-Charged: 1
X-Credits-Remaining: 149
X-Free-Remaining: 5
X-Width: 3000
X-Height: 2000
X-Image-Id: 1f3a…
X-Type: hd
Hurudisha picha 100 za mwisho zilizochakatwa kwa funguo zako za API. Kila picha ina URL ya kihariri ili uiboreshe kwenye kivinjari.
Hitilafu
Hitilafu hurudishwa kama JSON yenye msimbo wa hitilafu na ujumbe unaoeleweka kwa urahisi:
{ "ok": false, "error": "insufficient_credits", "message": "No credits left. Buy credits at https://bgcut.net/pricing or request size=preview." }
HTTP
error
Maelezo
400
bad_request / missing_image
Vigezo havipo au si sahihi.
401
auth_required / invalid_key
Ufunguo wa API haupo, si sahihi au umebatilishwa.
402
insufficient_credits / free_quota_exceeded
Hakuna krediti (kwa ukubwa kamili) au kiwango cha bure kimekwisha (kwa onyesho la awali).
422
too_large / bad_type / fetch_failed
Picha haikuweza kusomwa au kupakuliwa.
429
rate_limited
Maombi mengi mno – punguza kasi au wasiliana nasi kwa vikomo vya juu zaidi.
500
processing_failed
Uchakataji umeshindikana upande wetu – hutatozwa.
Msimbo wa mfano
Mifano yote hutumia endpoint ileile. Pakua mkusanyiko kamili wa mifano: bgcut-api-examples.zip
SDK rasmi ya PHP Maktaba ya mteja ya chanzo huria yenye matokeo yenye aina, madaraja ya hitilafu na mifano iliyo tayari kuendeshwa. Leseni ya MIT. composer require bgcut-net/bgcut-php