Skip to content

Tối ưu hóa Hình ảnh

Chuyển đổi và tối ưu hóa hình ảnh được phục vụ từ IPFS trực tiếp bằng tham số truy vấn. Đây là endpoint công khai không yêu cầu xác thực.

Tối ưu hóa Hình ảnh

GET /image/:cid

Trả về hình ảnh tại CID đã cho, được chuyển đổi theo tham số truy vấn được cung cấp. Nếu không có tham số, yêu cầu chuyển hướng đến hình ảnh gốc.

Tham số đường dẫn

Tham sốKiểuBắt buộcMô tả
cidstringMã định danh nội dung IPFS của hình ảnh.

Tham số truy vấn

Tham sốKiểuMặc địnhMô tả
wnumber--Chiều rộng đầu ra tính bằng pixel. Tối đa 4096.
hnumber--Chiều cao đầu ra tính bằng pixel. Tối đa 4096.
formatstring--Định dạng đầu ra: webp, jpeg, png, hoặc avif.
qualitynumber80Chất lượng nén, 1-100. Chỉ áp dụng khi format được đặt.
fitstringcoverCách hình ảnh phù hợp với kích thước: cover, contain, fill, inside, hoặc outside.

Chế độ phù hợp

Chế độHành vi
coverCắt để bao phủ cả hai chiều (mặc định).
containVừa vặn trong cả hai chiều, giữ tỷ lệ khung hình. Có thể để trống không gian.
fillKéo giãn để lấp đầy cả hai chiều chính xác. Có thể làm méo hình ảnh.
insideGiống contain, nhưng chỉ thu nhỏ, không phóng to.
outsideGiống cover, nhưng chỉ thu nhỏ, không phóng to.

Ví dụ yêu cầu

Thay đổi kích thước thành 400px rộng, chuyển đổi sang WebP:

bash
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=400&format=webp"

Thay đổi kích thước và cắt thành hình thu nhỏ 200x200 dạng JPEG với chất lượng 60%:

bash
curl "https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=200&h=200&format=jpeg&quality=60&fit=cover"

Sử dụng trong HTML

Tham chiếu hình ảnh đã tối ưu trực tiếp trong thẻ img:

html
<img
  src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp&quality=75"
  alt="Hình ảnh IPFS đã tối ưu"
/>

Phục vụ kích thước khác nhau với srcset:

html
<img
  srcset="
    https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=400&format=webp 400w,
    https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp 800w,
    https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=1200&format=webp 1200w
  "
  sizes="(max-width: 600px) 400px, (max-width: 1000px) 800px, 1200px"
  src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp"
  alt="Hình ảnh IPFS đáp ứng"
/>

Bộ nhớ đệm

Phản hồi được phục vụ với tiêu đề bộ nhớ đệm bất biến. Vì nội dung IPFS được định địa chỉ theo nội dung, cùng CID với cùng tham số luôn tạo ra cùng đầu ra. Trình duyệt và CDN có thể lưu các phản hồi này vào bộ nhớ đệm vô thời hạn.

Khả dụng

Tối ưu hóa hình ảnh có sẵn trên tất cả các gói, bao gồm gói miễn phí Dharma.