Xóa phông nền ngay trong ứng dụng, cửa hàng hoặc quy trình của bạn chỉ với một yêu cầu HTTPS.
URL cơ sở: https://bgcut.net/api/v1 · Lấy khóa của bạn tại Khóa API.
Xác thực
Mọi yêu cầu đều phải gửi kèm khóa API của bạn trong header X-Api-Key. Bạn có thể tạo và thu hồi khóa trong tài khoản của mình. Mỗi khóa có thể được đặt tên để dễ dàng thay đổi theo từng ứng dụng.
// 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());
preview = tối đa 640 px (dùng hạn mức miễn phí hằng tháng, không tốn tín dụng); full = độ phân giải gốc (1 tín dụng); auto (mặc định) = full nếu bạn còn tín dụng, nếu không thì dùng preview.
format
png | jpg | webp
Định dạng đầu ra. png giữ nền trong suốt; jpg được làm phẳng trên bg_color (mặc định là màu trắng).
model
fast | hq | portrait
lite (mặc định, ~6 giây, cân bằng tốt nhất), fast (~0,5 giây, chất lượng xem trước), hq (~15 giây, chất lượng cao nhất), portrait (~0,3 giây, chỉ dành cho ảnh người).
bg_color
string
Mã màu hex cho nền, ví dụ #ffffff. Bỏ qua để giữ nền trong suốt.
bg_blur
number
Giữ nguyên nền gốc nhưng làm mờ với bán kính tính bằng pixel (1–200), ví dụ 25 để có hiệu ứng như chế độ chân dung. Ghi đè bg_color.
crop
boolean
Cắt ảnh đầu ra theo khung bao quanh chủ thể.
crop_margin
integer
Lề bổ sung tính bằng pixel quanh chủ thể khi cắt (0–200).
roi
string
Vùng quan tâm dưới dạng tỷ lệ x,y,w,h (0–1). AI chỉ xử lý bên trong hình chữ nhật này; mọi phần bên ngoài sẽ trở thành trong suốt.
feather
number
Làm mềm viền với bán kính tính bằng pixel (0–5).
quality
integer
Chất lượng JPG/WebP từ 50–100 (mặc định 92).
response
binary | json
binary (mặc định) trả về ảnh; json trả về siêu dữ liệu kèm ảnh mã hóa base64.
Phản hồi
Yêu cầu thành công sẽ trả về HTTP 200 kèm dữ liệu ảnh và các header sau:
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
Trả về 100 ảnh gần nhất được xử lý bằng các khóa API của bạn, kèm URL trình chỉnh sửa để tinh chỉnh ảnh ngay trên trình duyệt.
Lỗi
Lỗi được trả về dưới dạng JSON, gồm mã lỗi và thông báo dễ hiểu:
{ "ok": false, "error": "insufficient_credits", "message": "No credits left. Buy credits at https://bgcut.net/pricing or request size=preview." }
HTTP
error
Mô tả
400
bad_request / missing_image
Thiếu tham số hoặc tham số không hợp lệ.
401
auth_required / invalid_key
Khóa API bị thiếu, không hợp lệ hoặc đã bị thu hồi.
402
insufficient_credits / free_quota_exceeded
Hết tín dụng (với kích thước đầy đủ) hoặc đã dùng hết hạn mức miễn phí (với bản xem trước).
422
too_large / bad_type / fetch_failed
Không thể đọc hoặc tải ảnh về.
429
rate_limited
Quá nhiều yêu cầu – hãy giảm tần suất hoặc liên hệ với chúng tôi để được nâng giới hạn.
500
processing_failed
Xử lý thất bại do lỗi từ phía chúng tôi – bạn sẽ không bị tính phí.
Mã mẫu
Tất cả mã mẫu đều dùng chung một endpoint. Tải xuống bộ ví dụ đầy đủ: bgcut-api-examples.zip
SDK PHP chính thức Thư viện client mã nguồn mở với kết quả có kiểu dữ liệu, các lớp lỗi và ví dụ chạy được ngay. Giấy phép MIT. composer require bgcut-net/bgcut-php