このセクションでは、Images の制限と対応フォーマットを説明します。
Images で最適化するときに、次の制限を守ってください。
Enterprise プランの場合は、アカウントチームに連絡して、制限が要件に合うように調整できます。
Images の外に保存したリモート画像を変換する場合の制限です。
| 項目 | 制限 |
|---|---|
| 画像ファイルサイズ | 100 MB |
| 画像面積(アニメーション GIF を除く) | 100 MP(例: 10,000x10,000 ピクセル) |
| アニメーション GIF の画像面積 | 100 MP* |
| 画像の一辺(WebP と AVIF を除く) | 12,000 ピクセル |
| 画像の一辺(AVIF) | 1,200 ピクセル |
Images ストレージへアップロードする場合の制限です。
| 項目 | 制限 |
|---|---|
| 画像ファイルサイズ | 10 MB |
| 画像面積(アニメーション GIF を除く) | 100 MP(例: 10,000x10,000 ピクセル) |
| アニメーション GIF の画像面積 | 100 MP* |
| 画像の一辺(WebP と AVIF を除く) | 12,000 ピクセル |
| 画像の一辺(AVIF) | 1,200 ピクセル |
| 画像のメタデータ | 1024 バイト |
GIF/WebP アニメーションは、全フレームの合計メガピクセル(各フレームの面積の合計)で制限されます。たとえば、500x500、10 フレームの GIF の画像面積は 2,500,000 ピクセル(2.5 メガピクセル)です。
アニメーション GIF/WebP を配信できる上限は 100 メガピクセルです。ただし、50 メガピクセルを超えるアニメーションは、変換を適用せずに配信します。
アニメーションを配信するときは、パフォーマンスのため MP4 や WebM などの動画形式を推奨します。GIF は圧縮効率が低いため、高解像度のアニメーションはファイルサイズが大きくなり、圧縮にも時間がかかります。
リモート動画を最適化するには、メディア変換 ↗ を使えます。
Images binding で最適化する場合、.input() の最大入力サイズは 20 MB です。
Images は、リモート画像とホスト済み画像の両方で、幅広い入力フォーマットに対応しています。
- PNG
- JPEG
- GIF(アニメーションを含む)
- WebP(アニメーションを含む)
- SVG
- AVIF*
- HEIC
*Enterprise プランで利用できます。
次の出力フォーマットで画像を配信できます。
- PNG
- JPEG
- GIF(アニメーションを含む)
- WebP(アニメーションを含む)
- SVG
- AVIF
リクエスト元のブラウザーに最適な出力フォーマットを選ぶとき、Cloudflare は画像の生成時間と、ブラウザーへの配信時間のバランスを取ります。
とくに AVIF のエンコードは、他のフォーマットより桁違いに遅くなることがあります。画像が大きくて AVIF へすばやくエンコードできない場合、Cloudflare は WebP または JPEG にフォールバックします。
JPEG へトランスコードするとき、Cloudflare はインターレースの Progressive JPEG 形式で画像を生成します。
Progressive JPEG と Baseline JPEG のどちらを使うかは、format パラメーターで指定できます。
ただし、次のいずれかに当てはまる場合は、Progressive JPEG を指定しても Baseline JPEG にフォールバックします。
- 出力画像の面積が 50x50 未満
- 出力画像の面積が 3000x3000 超
Cloudflare は SVG ファイルをリサイズしません。最適化パラメーターも無視します。
Images に保存している場合は、事前定義した variant をプレースホルダーとして使い、サニタイズ済み SVG を配信できます。たとえば、デフォルトの public variant を適用すると、リサイズや切り抜きなしで SVG を配信できます。
imagedelivery.net/account_hash/svg_id/public
同様に、R2 など自前のオリジンに保存した SVG も、Images でサニタイズして配信できます。
SVG ファイルは、Cloudflare が安全性を高めるために開発したオープンソースツール svg-hush ↗ でサニタイズしてから配信します。バッファリングせずにストリーム処理するため、その場ですばやくフィルタできます。SVG ファイルは XML ドキュメントであり、リンクや JavaScript の機能を含められるため、セキュリティ上の懸念になることがあります。
svg-hush は SVG をフィルタし、次のようなリスクのある機能を取り除きます。
- スクリプト。 SVG をクロスサイトスクリプティング攻撃に使えないようにします。ブラウザーは
<img>タグ内のスクリプトを許可しませんが、SVG をトップレベルのドキュメントとして直接開いた場合はスクリプトを許可します。 - 他ドキュメントへのハイパーリンク。 ハイパーリンクを除くと、SEO スパムやフィッシングに SVG が使われにくくなります。
- クロスオリジンリソースへの参照。 第三者が、誰が画像を見ているかを追跡できないようにします。