Skip to content

圖片最佳化

使用查詢參數即時變換和最佳化從 IPFS 提供的圖片。這是一個無需驗證的公共端點。

最佳化圖片

GET /image/:cid

傳回給定 CID 的圖片,根據提供的查詢參數進行變換。如果未提供參數,請求將重新導向到原始圖片。

路徑參數

參數類型必填描述
cidstring圖片的 IPFS 內容識別碼。

查詢參數

參數類型預設值描述
wnumber輸出寬度(像素)。最大 4096。
hnumber輸出高度(像素)。最大 4096。
formatstring輸出格式:webpjpegpngavif
qualitynumber80壓縮品質,1-100。僅在設定 format 時生效。
fitstringcover圖片適應尺寸的方式:covercontainfillinsideoutside

適應模式

模式行為
cover裁切以覆蓋兩個尺寸(預設)。
contain適應兩個尺寸內,保持長寬比。可能留有空白。
fill拉伸以完全填充兩個尺寸。可能導致圖片變形。
inside類似 contain,但只縮小不放大。
outside類似 cover,但只縮小不放大。

請求範例

調整寬度為 400px,轉換為 WebP:

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

調整並裁切為 200x200 縮圖,JPEG 格式 60% 品質:

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

在 HTML 中使用

直接在 img 標籤中參照最佳化後的圖片:

html
<img
  src="https://api.ipfs.ninja/image/QmXmCX9S6ANV...?w=800&format=webp&quality=75"
  alt="Optimized IPFS image"
/>

使用 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="Responsive IPFS image"
/>

快取

回應帶有不可變快取標頭。由於 IPFS 內容是內容定址的,相同的 CID 和相同的參數總是產生相同的輸出。瀏覽器和 CDN 可以無限期快取這些回應。

可用性

圖片最佳化在所有方案中可用,包括免費的 Dharma 方案。