mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
All 181 docs markdown files translated into 20 languages (apps/docs/<locale>/**). Companion to the i18n code PR; admin-merged because the file count exceeds GitHub's per-PR CI trigger limit. Validated by pnpm i18n:check (all surfaces, 0 stale/missing) and a clean all-locale docs build.
3.8 KiB
3.8 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| Tối ưu ảnh cho phân phối web với chuyển đổi định dạng, kiểm soát chất lượng, thay đổi kích thước và loại bỏ metadata. | c327bbbce768 | human | 2bb8d1313e7f |
Optimize for Web
Tối ưu ảnh cho phân phối web trong một bước duy nhất. Kết hợp chuyển đổi định dạng, điều chỉnh chất lượng, thay đổi kích thước tùy chọn, mã hóa lũy tiến và loại bỏ metadata.
API Endpoint
POST /api/v1/tools/image/optimize-for-web
Chấp nhận multipart form data với một tệp ảnh và một trường JSON settings.
Cũng có sẵn một endpoint xem trước trực tiếp tại POST /api/v1/tools/image/optimize-for-web/preview, trả về ảnh đã xử lý trực tiếp dưới dạng nhị phân (không tạo workspace) để tinh chỉnh tham số theo thời gian thực.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| format | string | No | "webp" |
Định dạng đầu ra: webp, jpeg, avif, png, jxl |
| quality | number | No | 80 |
Chất lượng đầu ra (1-100) |
| maxWidth | number | No | - | Chiều rộng tối đa tính bằng pixel. Ảnh sẽ được thu nhỏ nếu rộng hơn. |
| maxHeight | number | No | - | Chiều cao tối đa tính bằng pixel. Ảnh sẽ được thu nhỏ nếu cao hơn. |
| progressive | boolean | No | true |
Bật mã hóa lũy tiến/xen kẽ |
| stripMetadata | boolean | No | true |
Loại bỏ metadata EXIF, GPS, ICC và XMP |
Example Request
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"format": "webp", "quality": 75, "maxWidth": 1920}'
Tối ưu cho AVIF với nén mạnh:
curl -X POST http://localhost:1349/api/v1/tools/image/optimize-for-web \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"format": "avif", "quality": 50, "maxWidth": 1200, "maxHeight": 800}'
Example Response
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.webp",
"originalSize": 4500000,
"processedSize": 320000
}
Preview Endpoint Response
Endpoint xem trước (/api/v1/tools/image/optimize-for-web/preview) trả về ảnh nhị phân trực tiếp cùng với các header thông tin:
X-Original-Size- Kích thước tệp gốc tính bằng byteX-Processed-Size- Kích thước tệp đã xử lý tính bằng byteX-Output-Filename- Tên tệp đầu ra đã mã hóa URL
Notes
- Công cụ này được thiết kế như một pipeline tối ưu một cửa cho tài nguyên web. Nó xử lý chuyển đổi định dạng, tinh chỉnh chất lượng, giới hạn kích thước tối đa và loại bỏ metadata trong một lượt duy nhất.
- Phần mở rộng tên tệp đầu ra được cập nhật để khớp với định dạng đã chọn.
- Mã hóa JXL (JPEG XL) sử dụng một bộ mã hóa CLI chuyên biệt. Ảnh trước tiên được xử lý dưới dạng PNG, sau đó mã hóa sang JXL.
- Mã hóa lũy tiến cải thiện thời gian tải cảm nhận cho JPEG và PNG bằng cách cho phép trình duyệt kết xuất bản xem trước chất lượng thấp trước khi ảnh đầy đủ tải xong.
- Endpoint xem trước nhẹ hơn (không tạo workspace/job) và dành cho giao diện tinh chỉnh tham số trực tiếp của frontend.