Metadata ảnh & EXIF API
Đọc kích thước, định dạng, thông tin EXIF máy ảnh, thông số chụp và vị trí GPS của ảnh JPEG, PNG, WebP, HEIC, AVIF, GIF… – upload file hoặc qua URL.
API metadata ảnh phân tích một file ảnh và trả về mọi thông tin hữu ích: định dạng và MIME type (nhận diện từ nội dung file, không dựa vào đuôi file), chiều rộng, chiều cao, số megapixel và tỉ lệ khung hình, dung lượng file và SHA-256, cùng các chi tiết như độ sâu màu, kiểu màu, interlace, JPEG progressive hay ảnh động (PNG, GIF, WebP).
Với JPEG, HEIC, AVIF, TIFF, PNG và WebP, API đọc EXIF, XMP và IPTC: hãng và model máy ảnh, ống kính, phần mềm, hướng ảnh, ngày chụp và thông số chụp (tốc độ màn trập, khẩu độ, ISO, tiêu cự, đèn flash, cân bằng trắng) cùng toạ độ GPS. Các trường has_exif, has_gps, has_xmp giúp bạn nhanh chóng quyết định có cần xoá metadata trước khi đăng ảnh hay không. Thêm raw=true để lấy toàn bộ cây EXIF.
Định dạng hỗ trợ: JPEG, PNG, GIF, WebP, AVIF, HEIC, TIFF, BMP, ICO và SVG. Gửi ảnh qua trường multipart file, body nhị phân thô, base64 qua file_base64, hoặc truyền url công khai để API tự tải. Dung lượng tối đa theo gói: Free 5 MB, Starter 20 MB, Pro 50 MB.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
file | body | file | không | File ảnh: trường multipart file, body nhị phân thô, hoặc base64 qua file_base64. Tối đa 5/20/50 MB (Free/Starter/Pro). | |
url | body|query | string | không | URL công khai của ảnh để API tự tải, thay cho upload. | |
raw | body|query | boolean | không | false | Trả kèm toàn bộ cây EXIF/XMP/IPTC trong trường exif. |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/image-metadata" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"}'const res = await fetch('https://apibox.io.vn/v1/image-metadata', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/image-metadata",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"url": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/image-metadata');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"url":"https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"source": "https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg",
"file_name": "DSCN0010.jpg",
"size_bytes": 161713,
"sha256": "17307b1207eb6487d7908e9d154890b46e3d2e0192369cfd3f4c33d5a5af4035",
"format": "jpeg",
"mime_type": "image/jpeg",
"width": 640,
"height": 480,
"megapixels": 0.31,
"aspect_ratio": "4:3",
"orientation": "Horizontal (normal)",
"bit_depth": 8,
"components": 3,
"progressive": false,
"camera": {
"make": "NIKON",
"model": "COOLPIX P6000",
"lens": null,
"software": "Nikon Transfer 1.1 W"
},
"capture": {
"date_time": "2008-10-22T16:28:39.000Z",
"exposure_time": 0.013333333333333334,
"f_number": 5.9,
"iso": 64,
"focal_length": 24,
"flash": "Flash did not fire, compulsory flash mode",
"white_balance": "Auto"
},
"gps": {
"latitude": 43.46744833333334,
"longitude": 11.885126666663888,
"altitude": null
},
"has_exif": true,
"has_gps": true,
"has_xmp": false
}
Ứng dụng
- Kiểm tra kích thước, định dạng ảnh người dùng upload trước khi xử lý
- Phát hiện và cảnh báo vị trí GPS trong ảnh trước khi công khai
- Lấy ngày chụp, thông tin máy ảnh cho thư viện ảnh và hệ thống DAM
- Kiểm tra ảnh từ xa qua URL mà không cần tự tải về
Hỏi đáp
Làm sao biết ảnh được chụp ở đâu?
Upload ảnh và xem trường gps: vĩ độ, kinh độ sẽ có nếu máy ảnh/điện thoại đã lưu vị trí. Nhiều ứng dụng và mạng xã hội xoá GPS khi tải lên, khi đó has_gps là false.
Có đọc metadata từ URL ảnh được không?
Được: /v1/image-metadata?url=https://example.com/anh.jpg (hoặc POST {"url": ...}). APIBox sẽ tải file về và file vẫn tính theo giới hạn dung lượng của gói.
Ảnh tôi upload có bị lưu lại không?
Không. File chỉ được xử lý trong bộ nhớ và bị huỷ sau khi trả kết quả; bạn chỉ nhận lại mã SHA-256 của nó.
API liên quan
Metadata PDF
Đọc metadata file PDF: số trang, tiêu đề, tác giả, phần mềm tạo, ngày tạo, phiên bản PDF, mã hoá, số trường form và khổ giấy từng trang (A4, Letter…).
PDF₫Tạo PDF báo giá, phiếu thu
Tạo PDF báo giá, phiếu thu, đơn đặt hàng, hoá đơn bán hàng gọn đẹp từ JSON: tiếng Việt chuẩn, thuế GTGT, số tiền bằng chữ và mã VietQR để thanh toán.
M↓PDFMarkdown sang PDF
Chuyển Markdown thành PDF khổ A4 / A5 / Letter gọn đẹp: tiêu đề, chữ đậm / nghiêng, liên kết, danh sách lồng, trích dẫn, khối code, bảng, số trang, tiếng Việt đầy đủ.