Skip to content

画像最適化

クエリパラメータを使用して、IPFS から配信される画像をオンザフライで変換・最適化します。これは認証不要のパブリックエンドポイントです。

画像の最適化

GET /image/:cid

指定された CID の画像を、提供されたクエリパラメータに従って変換して返します。パラメータが提供されない場合、リクエストは元の画像にリダイレクトされます。

パスパラメータ

パラメータ必須説明
cidstringはい画像の IPFS コンテンツ識別子。

クエリパラメータ

パラメータデフォルト説明
wnumber出力幅(ピクセル)。最大 4096。
hnumber出力高さ(ピクセル)。最大 4096。
formatstring出力フォーマット:webpjpegpng、または avif
qualitynumber80圧縮品質、1〜100。format が設定されている場合のみ適用。
fitstringcover画像のフィット方法:covercontainfillinside、または outside

フィットモード

モード動作
cover両方のサイズを覆うようにクロップ(デフォルト)。
containアスペクト比を保持しながら両方のサイズに収める。余白が生じる場合があります。
fill両方のサイズに正確に引き伸ばす。画像が歪む場合があります。
insidecontain と同様ですが、縮小のみで拡大しません。
outsidecover と同様ですが、縮小のみで拡大しません。

リクエスト例

幅 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 プランを含むすべてのプランで利用可能です。