web-dev-qa-db-ja.com

iOS-Xcodeシミュレーターの色がデバイスの色と異なる

概要

シミュレーター(iMac)での私のiPhoneアプリの背景色は、デバイス(iPhone 3GS)の色とは異なって見えます。

編集(以下のセクションが追加されました)

以下はすべて異なります。

  1. ストーリーボードの色(xibファイル)
  2. シミュレーターの色
  3. デバイスの色

私はそれがデバイス上でどのように見えるかで行くべきだと思います。

質問

  1. これは他の開発者が直面する一般的な問題ですか?色を一致させる方法(体系的な手順)はありますか?
  2. iPhoneの異なるバージョン(3gs/4/4s)またはすべての色で色は異なりますか?
  3. 何か不足していますか、使用すべき特定のカラープロファイルはありますか?
  4. RGB値が一定の割合で変化する経験則のようなものはありますか?
  5. IPhone 4および4Sでは、色はシミュレーターと一致しますか? (私はiPhone4と4Sを持っていないので、よくわかりません。)
39
user1046037

解決策につながったスクリーンショットを送信することを提案したクレジットは@jtbandesに送られます

私は完全性のための質問に答えているだけです。

私が従った手順:

  1. ストーリーボードの画像のスクリーンショットを撮ります
  2. デバイス内の画像のスクリーンショットを撮ります(Macに戻るメール/フォトストリームを使用)
  3. カラーピッカー(mac OSカラーパレットの一部)を使用して、両方のスクリーンショットで同じスポットを選択します
  4. 手順3で選択したスポットのRGB値(mac OSカラーパレットで利用可能)を書き留めます
  5. 両方のRGB値を比較して違いを確認する
  6. 色に合わせてRGBオフセットを追加します。

My RGBオフセット(盲目的にフォローされない)

私の経験に基づいて、私は次のRGB値を追加して、必要な色を取得しました。

  • 赤+12
  • 緑+19
  • 青+16

異なる角度(水平に保つのに最適)

スマートフォンをさまざまな角度で持つと、さまざまな色合いが得られ、水平に保つと色が得られました

19
user1046037

他の人が指摘したように、これはColor Spacesの問題です。

2つのタスクを実行する必要があります。

  1. SRGB色空間を使用してソース色を取得します。
  2. SRGB色空間を使用して、Interface Builderで色を設定します。

タスク1

AppleのDigital Color MeterアプリでDisplay in sRGBオプションを使用して必要な色をサンプリングできますが、出力は非常に制限されています。

もう1つのオプションは、SipIt(App Storeで無料で入手可能、最後に確認した)などのアプリを使用することです。以下を実行して、正しい色空間でサンプリングしていることを確認してください。

Preferences -> General -> Color Profiles -> sRGB

出力形式(16進文字列など)を設定することもできます。

enter image description hereタスク2

Interface BuilderでColorウィンドウを開き、2番目のペインを選択して、「RGB Sliders」を選択します。次に、歯車アイコンをクリックして、sRGBカラープロファイルを選択します。

enter image description here

完了したら、色の値をHex Color #フィールドに貼り付けます

完了です!これで色が一致するはずです。

私はSipItとは何の関係もありません。しかし、私はそれを数年間使用しており、非常に便利です。どんなデザイナーにもオススメします。

9
Womble

現在(2014年3月17日現在)のCGColorSpace参照には、sRGBがiOSのネイティブデバイスの色空間であることを示す次のテキストが含まれています。

色空間とiOS:iOSはColorSyncをサポートしていないため、すべてのアセットはネイティブデバイスの色空間であるsRGBで提供する必要があります。

8
John

色空間についてです。

sRGBcolorスペースから色を選択し、ドロップダウンメニューから_sRGB IEC61966-2.1_を選択して、そのRGBA値をInterface Builderで複製していることを確認してください。

ある色空間で色を選択し、別の色空間で生成すると、同じRGBA値を複製しているにもかかわらず、色が違って見えます。

また、UIColor(red:green:blue:alpha:)を使用してコードで色を生成すると、デフォルトでsRGB色空間に生成されることに注意してください。これが、(_Adobe RGB_、_P3_、またはその他の代わりに)これを使用すると非常に便利な理由です。さらに、sRGBは現在業界で最も使用されている標準です。

おもしろい事実:上記のUIColorコンストラクターは、Xcode8以降、sRGB空間に色を作成します。以前は、その関数は_Generic RGB_空間内で作成するために使用されていました。それも混乱を引き起こすかもしれない理由です。

これはトピックを拡張するリソースです: https://medium.com/@volbap/working-efficiently-with-colors-in-xcode-bc4c58b16f9a

5
Pablo V.

アプリで画像ファイルを操作する場合のもう1つの簡単な解決策。まず、Xcodeの色空間をsRGB IEC61966-2.1に設定し、色を適用します。次に、画像をアプリにインポートする前に、MacのColorSyncユーティリティを使用して画像をsRGB IEC61966-2.1プロファイルに一致させます。私にとっては完璧に機能し、私の背景はインポートしたイメージと完全に一致しています。これが誰かを助けることを願っています。

1
Dusan Juranovic

iPhoneは色空間管理を使用するため、より「科学的な」ソリューションが必要な場合は、たとえばCGColorSpaceCreateCalibratedRGBを使用して独自の色空間を作成できます。ただし、コアグラフィックスレベルです。

1
MrTJ

RGB値をsRGBに変換するより良い方法は、Macの「デジタルカラーメーター」ツールを使用することです。「sRGBで表示」を確認するだけです。

Digital Color Meter

次に、RGBの代わりにコードでsRGB値を使用します native values

enter image description here

このツールを使用すると、一般的なRGBカラーを見つけて、RGB値としてxcodeに直接設定できます

1
MohyG

これは、Xcodeのさまざまな色のデッキに webPage を使用できます。たとえば、ジェネリックとデバイスの色は少し異なります。

0
S At

私は同様の問題を抱えていました。特に、プロジェクトのグリーンに問題がありました。私の問題は、私が持っていたアセットの一部がイラストレーターで作成され、色がRGBではなくCMYKに設定されていたことでした。これがあなたの問題であったかどうかはわかりませんが、将来この質問に遭遇した人には役立つかもしれません。イラストレーター「ドキュメントカラーモード」をRGBに変更しましたが、すべて順調です。

0
user3102878