Tek bir HTTPS isteğiyle kendi uygulamalarınızda, mağazalarınızda veya iş akışlarınızda arka planları kaldırın.
Temel URL: https://bgcut.net/api/v1 · Anahtarınızı şuradan alabilirsiniz: API anahtarları.
Kimlik doğrulama
Her istek, API anahtarınızı X-Api-Key başlığında taşımalıdır. Anahtarlar hesabınızda oluşturulur ve iptal edilir. Her anahtara bir ad verebilir, böylece anahtarları uygulama bazında yenileyebilirsiniz.
// 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());
Görsel dosyası (multipart/form-data). JPG, PNG, WebP, GIF, BMP, TIFF; en fazla 25 MB / 30 MP.
image_url
string
Yüklemek yerine indirilecek görselin herkese açık URL'si.
image_file_b64
string
Base64 kodlu görsel (isteğe bağlı olarak data: önekiyle).
size
auto | preview | full
preview = en fazla 640 px (ücretsiz aylık kotanızı kullanır, kredi harcanmaz); full = orijinal çözünürlük (1 kredi); auto (varsayılan) = krediniz varsa full, yoksa preview.
format
png | jpg | webp
Çıktı biçimi. png saydamlığı korur; jpg, bg_color üzerinde düzleştirilir (varsayılan beyaz).
model
fast | hq | portrait
lite (varsayılan, ~6 sn, en iyi denge), fast (~0,5 sn, önizleme kalitesi), hq (~15 sn, en yüksek kalite), portrait (~0,3 sn, yalnızca insanlar).
bg_color
string
Arka plan için hex renk kodu, ör. #ffffff. Saydam arka plan için boş bırakın.
bg_blur
number
Orijinal arka planı korur ancak piksel cinsinden bu yarıçapla bulanıklaştırır (1–200), ör. portre modu görünümü için 25. bg_color'ı geçersiz kılar.
crop
boolean
Çıktıyı nesnenin sınırlayıcı kutusuna göre kırpar.
crop_margin
integer
Kırpma sırasında nesnenin çevresine eklenecek piksel cinsinden ek kenar boşluğu (0–200).
roi
string
x,y,w,h kesirleri (0–1) olarak ilgi alanı. Yapay zekâ yalnızca bu dikdörtgenin içine bakar; dışında kalan her şey saydam olur.
feather
number
Kenarları piksel cinsinden bu yarıçapla yumuşatır (0–5).
quality
integer
JPG/WebP kalitesi 50–100 (varsayılan 92).
response
binary | json
binary (varsayılan) görseli döndürür; json, meta verileri ve base64 görseli döndürür.
Yanıtlar
Başarılı istekler, görsel baytlarıyla birlikte HTTP 200 ve şu başlıkları döndürür:
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
API anahtarlarınızla işlenen son 100 görseli, tarayıcıda düzenlemeniz için bir düzenleyici URL'siyle birlikte döndürür.
Hatalar
Hatalar, bir hata kodu ve okunabilir bir mesaj içeren JSON biçimindedir:
{ "ok": false, "error": "insufficient_credits", "message": "No credits left. Buy credits at https://bgcut.net/pricing or request size=preview." }
HTTP
error
Açıklama
400
bad_request / missing_image
Eksik veya geçersiz parametreler.
401
auth_required / invalid_key
Eksik, geçersiz veya iptal edilmiş API anahtarı.
402
insufficient_credits / free_quota_exceeded
Kredi yok (tam boyut için) veya ücretsiz kota tükendi (önizleme için).
422
too_large / bad_type / fetch_failed
Görsel okunamadı veya indirilemedi.
429
rate_limited
Çok fazla istek – hızınızı düşürün veya daha yüksek sınırlar için bizimle iletişime geçin.
500
processing_failed
İşlem bizim tarafımızda başarısız oldu – ücretlendirilmezsiniz.
Örnek kod
Tüm örnekler aynı uç noktayı kullanır. Örneklerin tam koleksiyonunu indirin: bgcut-api-examples.zip
Resmî PHP SDK Tipli sonuçlar, hata sınıfları ve çalıştırmaya hazır örnekler içeren açık kaynaklı istemci kütüphanesi. MIT lisanslı. composer require bgcut-net/bgcut-php