◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/アプリ開発
◇ アプリ開発/2026-06-23中級

壁紙アプリの色がくすむ問題と Display P3 — 広色域を配信パイプラインで詰める

同じ壁紙が実機ではくすんで見える。原因は広色域(Display P3)とsRGBの取り違えでした。6本の壁紙アプリで色域を詰めた実装手順に加え、画素が本当に広色域かを見分ける方法、配信前ゲートのスクリプト、Android広色域までまとめます。

iOS115壁紙アプリ28Display P3色域expo-image7Rork585

✦ プレミアム記事

ある朝、自分の壁紙アプリでプレビューした画像と、実際に設定した後のロック画面の色が、どうも違って見えました。プレビューでは深い青だった空が、設定後は少し灰色がかってくすんで見えるのです。最初はディスプレイの明るさの問題かと思ったのですが、明るさを揃えても差は消えませんでした。

原因は広色域、いわゆる Display P3 と sRGB の取り違えでした。2019年に吉祥寺駅の上空で光の輪を見て以来、私は色や光の見え方にずいぶん敏感になったのですが、まさか自分の配信パイプラインで色が痩せているとは気づいていませんでした。この記事は、6本の壁紙アプリを個人開発で運用しながら色域を一つずつ詰めてきたときの手順と、確認に使ったコマンドの記録です。単に「プロファイルを埋める」だけでなく、画素が本当に広色域かを見分ける段階、配信前に取りこぼしを止めるゲート、そして Android 側の事情まで含めて整理します。

なぜ実機で色がくすんで見えたのか

iPhone は iPhone 7 の頃から Display P3 という広色域ディスプレイを積んでいます。sRGB より一回り広い範囲の色を表示できるので、鮮やかな赤や緑が素直に出ます。問題は、画像にカラープロファイル(ICCプロファイル)が埋め込まれていないときに起こります。

iOS はプロファイルのない画像を「これは sRGB だろう」とみなして表示します。ところが私が配信していた一部の壁紙は、書き出しのときにプロファイルが剥がれた状態で、しかも中身は P3 の色域で塗られていました。P3 の数値を sRGB の物差しで読むと、彩度が低い方へずれます。これが「くすむ」の正体でした。逆にプロファイルが正しく埋まっていれば、iOS が自動で色域を合わせてくれるので、P3 非対応の古い端末でも破綻しません。

ここで大事な区別が一つあります。色には「画素の数値」と「その数値をどの物差しで読むかというプロファイル」の二つがあり、どちらかが欠けると意図した色になりません。くすみは、画素は P3 なのにプロファイルが無いせいで sRGB の物差しで読まれた、という食い違いから生まれていました。

まず色域を確認する

推測で直すと泥沼にはまります。最初にやったのは、配信中の画像が実際にどの色域を持っているかを機械的に確認することでした。macOS の sips で埋め込みプロファイルを読めます。

# 単体ファイルのカラープロファイルを確認する
sips --getProperty profile wallpaper_001.jpg
 
# 配信フォルダ全体をざっと棚卸しする
for f in ./assets/*.jpg; do
  echo "$f"
  sips --getProperty profile "$f" 2>/dev/null | grep -i "profile:" || echo "  (プロファイルなし)"
done

6アプリ合わせておよそ2,000枚を棚卸ししたところ、3割近くがプロファイルなし、あるいは sRGB タグのまま中身が P3 という状態でした。書き出しツールの設定が「カラープロファイルを埋め込まない」になっていたのが直接の原因です。ここを直すだけで、くすみの大半は消えました。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦配信画像のカラープロファイルを sips で棚卸しし、Display P3 で統一して埋め直す具体手順
✦プロファイルの有無だけでなく、画素が本当に広色域を使っているかを ImageMagick で判定し、誤った P3 付与を防ぐ方法
✦配信前に『プロファイルなし』をゼロにする色域ゲートのシェルスクリプトと、Android 広色域・App Store スクリーンショットの落とし穴
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◇ アプリ開発2026-04-26
Rork でネイティブ iOS アプリを作る — SwiftUI 生成から TestFlight 配信までの実践ワークフロー
Rork の新規 iPhone プロジェクトは Swift/SwiftUI で生成され、Rork Pro で App Store まで届きます。古い Expo プロジェクトとの見分け方、クレジットで見る費用、骨格プロンプト、実機確認、Xcode に降りる基準、TestFlight 提出までを手順で追います。
⬡ 開発ツール2026-05-18
Rork で作った iOS アプリを iPhone Air と 17 Pro シリーズに対応させる — 2026年の解像度ごとのレイアウト調整パターン
iPhone Air・17 Pro・17 Pro Max の新解像度で既存 Rork アプリのレイアウトが崩れる問題を、4本の iOS アプリを並行更新した経験から解説。解像度定数管理・Safe Area・壁紙フルスクリーン表示の具体的な実装パターンを示します。
◇ アプリ開発2026-10-15
adjustsFontSizeToFit で特定の1行だけ極小になるとき、疑うのは文字列ではなく枠の高さです
一覧の10行目だけ文字が4ptまで縮む。データも文字列も正常なのに起きる iOS の症状を、Yoga の丸めと縮小判定のソースで確かめ、Node で再現率を数えた記録です。