Đóng dấu ảnh (watermark) API
Chèn watermark chữ và / hoặc logo lên ảnh JPEG, PNG: 9 vị trí hoặc chữ lặp chéo toàn ảnh, độ mờ, kích thước, lề; tối đa 20 ảnh mỗi lần, trả về ZIP.
Tải ảnh lên bằng multipart file (nhiều file để xử lý hàng loạt) kèm chữ text, logo (PNG trong suốt hoặc JPEG) hoặc cả hai. position là một trong top-left, top, top-right, left, center, right, bottom-left, bottom, bottom-right hoặc tile (watermark lặp khắp ảnh theo hàng so le, xoay theo rotation, mặc định 30°). scale là chiều rộng watermark so với chiều rộng ảnh (mặc định 0,3), opacity 0–1 hoặc 0–100, margin là tỉ lệ theo cạnh ngắn, spacing là khoảng cách giữa các ô lặp. Chữ dùng font Be Vietnam Pro (đủ dấu tiếng Việt) màu color có viền mảnh tương phản (stroke, bỏ viền bằng outline=false); khi có cả logo và chữ thì chữ nằm dưới logo (layout=stack) hoặc đặt riêng (text_position).
Một ảnh trả về ảnh (giữ định dạng, hoặc format=png|jpeg, quality); nhiều ảnh trả về watermarked.zip. max_width thu nhỏ ảnh trước khi đóng dấu. Giới hạn: 25 megapixel mỗi ảnh, 100 MP và 20 ảnh mỗi request, cùng dung lượng upload theo gói. Ảnh chỉ xử lý trong bộ nhớ, không lưu lại.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
file | body | file | có | Ảnh (JPEG / PNG); nhiều file để xử lý hàng loạt (tên trường bất kỳ trừ logo), hoặc file_base64 / images_base64. | |
text | body | string | không | Chữ watermark (tối đa 200 ký tự). | |
logo | body | file | không | Ảnh logo (PNG trong suốt hoặc JPEG). | |
position | body | string | không | bottom-right | Góc / cạnh / center, hoặc tile (lặp). |
opacity | body | number | không | 0.6 | 0–1 (hoặc 0–100). Mặc định 0,3 khi lặp. |
scale | body | number | không | 0.3 | Chiều rộng watermark / chiều rộng ảnh (0,01–1). |
margin | body | number | không | 0.03 | Lề, tính theo tỉ lệ cạnh ngắn. |
rotation | body | number | không | Góc xoay chữ (−90…90; mặc định 30 khi lặp). | |
color | body | string | không | #ffffff | Màu chữ (CSS). |
format | body | string | không | same (mặc định), jpeg hoặc png. |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/image-watermark" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@./my-file" \
-o outputconst form = new FormData();
form.append('file', fileInput.files[0]);
const res = await fetch('https://apibox.io.vn/v1/image-watermark', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY' },
body: form,
});
console.log(await res.json());import requests
res = requests.post(
"https://apibox.io.vn/v1/image-watermark",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"file": open("my-file", "rb")},
timeout=30,
)
open("output", "wb").write(res.content)<?php
$ch = curl_init('https://apibox.io.vn/v1/image-watermark');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
CURLOPT_POSTFIELDS => ['file' => new CURLFile('my-file')],
]);
$response = curl_exec($ch);
file_put_contents('output', $response);Kết quả trả về
binary image/jpeg
Ứng dụng
- Đóng tên shop lên ảnh sản phẩm trước khi đăng bán
- Chống lấy ảnh bất động sản bằng watermark lặp
- Chèn logo lên loạt ảnh sự kiện
- Đánh dấu ảnh mẫu, bản nháp bằng chữ "MẪU"
Hỏi đáp
Hỗ trợ định dạng nào?
Đầu vào và đầu ra là JPEG, PNG. Logo có thể là PNG nền trong suốt.
Đóng dấu nhiều ảnh thế nào?
Gửi nhiều file trong cùng request multipart (tối đa 20); kết quả là file ZIP, mỗi ảnh một file đã đóng dấu.
Chữ tiếng Việt có dấu được không?
Được: chữ được vẽ từ font Be Vietnam Pro, đủ dấu tiếng Việt.
API liên quan
Tạo mã QR
Tạo mã QR dạng PNG hoặc SVG chỉ với một request GET: link, văn bản, WiFi, danh thiếp vCard, e-mail, SMS, số điện thoại, toạ độ. Tuỳ chỉnh màu, kích thước.
|||Tạo mã vạch
Tạo mã vạch Code 128 cho tem nhãn, mã SKU, vận đơn chỉ với một request. Xuất SVG kèm dòng chữ hoặc PNG, tuỳ chỉnh chiều cao, độ rộng và màu sắc.
▭Ảnh placeholder
Lấy ảnh giữ chỗ đúng kích thước cho mockup và test: /v1/placeholder/600x400.png. Xuất SVG với chữ và màu tuỳ chỉnh, hoặc PNG một màu.