P3 画像配信ガイド 2025 — sRGB フォールバックと実機確認の手順

公開: 2025年9月20日 · 読了目安: 1 · 著者: Unified Image Tools 編集部

はじめに

近年の端末は P3 対応が増えていますが、非対応環境も混在します。破綻を招かないために、P3 と sRGB の運用を決めましょう。

本稿は「P3 を活かしつつ壊さない」ための最小実務。ICC の埋め込み、タグ付き JPEG/AVIF、HTML/Next.js 実装、そして CI での差分検証をまとめます。

関連記事: 色管理と ICC 運用 sRGB/Display-P3/CMYK ハンドオフ 2025正しいカラー管理とICCプロファイル戦略 2025 ─ Web画像の色再現を安定させる実践ガイド

エクスポートの基本

  • P3 は ICC プロファイルを必ず埋め込む
  • sRGB フォールバック版も保持(ダブル配信 or 重要箇所のみ)
  • 画像処理は同一色空間で完結(変換の多段回避)

ICC の取り扱い

  • P3: Display P3(D65 / 2°)の ICC を埋め込み。ガンマは sRGB トーンカーブ相当で扱う
  • sRGB: 明確にプロファイルを埋めてタグ付きに(未タグ付けは環境依存のズレ要因)

形式/圧縮の指針

  • 写真: AVIF/JPEG XL(可用なら)> WebP > JPEG。ICC 保持に注意
  • UI/イラスト: PNG/SVG。P3 の恩恵は限定的、配色差で検討
  • 重要なのは「P3 版と sRGB 版の見かけが破綻しない」こと(彩度飽和やスキントーン寄りすぎを回避)

配信実装

  1. srcset生成typesrcset を併用
  2. P3/ sRGB をメディアクエリや MIME で切り替え(検出が難しい場合は重要要素のみ P3)
  3. CICD にスクリーンショット検証を入れ、差異をレビュー

HTML パターン

<picture>
  <source type="image/avif" srcset="hero-p3.avif" media="(color-gamut: p3)">
  <source type="image/avif" srcset="hero-srgb.avif">
  <img src="hero-srgb.jpg" width="1200" height="800" alt="hero" />
</picture>

(color-gamut: p3) は端末側の広色域表示能力の目安。完全ではないため、重要要素だけ P3 を採用するなど限定運用が安全です。

Next.js(例)

<picture>
  <source srcSet={p3Avif} type="image/avif" media="(color-gamut: p3)" />
  <source srcSet={srgbAvif} type="image/avif" />
  <img src={srgbJpg} width={1200} height={800} alt="hero" />
</picture>

より Next/Image を使う場合は unoptimized かロスレスな色管理が必要です。既存の最適化レイヤーが ICC を落とす構成では、<picture> 手書きの方が安全なケースもあります。

確認手順

  • P3 対応端末と sRGB 限定端末で並べて比較
  • ヒストグラム/スポイトで飽和や剪断の有無を確認

実機比較の観点

  • スキントーンの赤寄り・黄寄りのズレ
  • ブランドカラーの飽和(P3 で「ベタ塗り」に潰れていないか)
  • グラデーションの階調破綻(ガンマ不整合や量子化ノイズ)

CI での差分検証

  • Storybook/Playwright で P3/非P3 プロファイルのスクリーンショットを比較
  • ΔE やヒストグラム差でしきい値を設定し、暴走を検知
// 疑似コード: 2 枚のスクリーンショット差分(Lab ΔE)
import { diffDE2000 } from 'some-color-lib';

function meanDeltaE(imgA: Uint8ClampedArray, imgB: Uint8ClampedArray): number {
  // ...RGB→Lab 変換して平均 ΔE を算出...
  return 1.8; // 例
}

if (meanDeltaE(p3Shot, srgbShot) > 3.0) {
  throw new Error('Color diff too large: please review P3 conversion');
}

FAQ

  • Q: ブラウザで P3 を強制表示させたい
  • A: 強制はできません。ICC と実機確認で確からしさを上げましょう。
  • Q: JPEG の ICC が消えます
  • A: 変換段で ICC を落とすツール/パイプがあります。--icc オプションや「メタデータ保持」をオンにして、最後に exiftool -icc_profile -G1 で在/不在を確認してください。
  • Q: sRGB と P3 のダブル配信は重くない?
  • A: 重要エリア限定で P3(ヒーロー/製品)にし、その他は sRGB のままにする折衷が現実解です。

まとめ

P3 を無理に“広く”配信しようとせず、重要要素に限定しつつ破綻を防ぐのが安全策です。


付録: 変換のミニパイプライン(例)

# sRGB 原版を P3 で現像、ICC を埋め込み
magick in_srgb.jpg -colorspace DisplayP3 -profile DisplayP3.icc out_p3.jpg

# AVIF へ変換(ICC 保持)
avifenc --icc out_p3.jpg out_p3.avif

# sRGB フォールバック
magick out_p3.jpg -colorspace sRGB -profile sRGB.icc out_srgb.jpg

追加の検査コマンド

# ICC の在/不在確認
exiftool -icc_profile -G1 out_p3.jpg out_p3.avif out_srgb.jpg

# sRGB/DisplayP3 の判定(簡易)
exiftool -ColorSpace -ProfileDescription out_p3.jpg

関連記事

正しいカラー管理とICCプロファイル戦略 2025 ─ Web画像の色再現を安定させる実践ガイド

デバイスやブラウザ間で色ズレを起こさないためのICCプロファイル/カラースペース/埋め込み方針と、WebP/AVIF/JPEG/PNG各形式における最適化手順を体系化。

Web

アクセシビリティ実務の画像 — alt/装飾/図解の線引き 2025

スクリーンリーダーで破綻しない画像の実装。装飾は空alt、意味画像は簡潔に、図解は本文を要約。リンク画像とOGPの注意点も。

基礎

画像最適化の基本 2025 — 勘に頼らない土台づくり

どのサイトにも効く、速くて美しい配信のための最新ベーシック。リサイズ→圧縮→レスポンシブ→キャッシュの順で安定運用に。

Web

Favicon & PWA アセット チェックリスト 2025 — マニフェスト/アイコン/SEO シグナル

見落としがちなファビコン/PWA アセットの要点。マニフェストのローカライズや配線、必要サイズの網羅をチェックリスト化。

変換

フォーマット変換の戦略 2025 — WebP/AVIF/JPEG/PNG を使い分ける指針

コンテンツ種別ごとの意思決定と運用フロー。互換性・容量・画質のバランスを取り、最小の労力で安定化。

Web

画像SEO 2025 — alt・構造化データ・サイトマップの実務

検索流入を逃さない画像SEOの最新実装。altテキスト/ファイル名/構造化データ/画像サイトマップ/LCP最適化を一つの方針で整えます。