5

png実際の画像と比べて iOS で間違った色になる画像に問題があります。

画像をどのように使用しても、常に間違った色になります。私は試着しましUIButtonUIImageViewが、同じ結果が得られます。

これは a の非常に標準的な使い方ですUIImage:

UIImage* greenButtonImg = [UIImage imageNamed:@"btn_green"];
UIImageView* testView = [[UIImageView alloc] initWithImage:greenButtonImg];
[self.view addSubview:testView];

2 番目の画像は iOS での外観で、最初のボタンは Mac (Finder と Photoshop) での外観です。

最初のボタンは Mac でのイメージ、2 番目のイメージは iOS でのイメージ

ご覧のとおり、2 番目のボタンは異なる緑色をしています。これは、この写真を使用しているアプリ全体で発生しています。シミュレーターと iPhone 5 で発生します。

この問題の原因は何ですか? これは、画像が作成された Photoshop の設定が原因でしょうか?

4

2 に答える 2

3

Jeff がコメントで書いたように、これは RGB プロファイルの問題でした。

Photoshop でカラー プロファイルを変換することで問題を解決できました。

Edit -> Convert to Profile... -> Set profile to "Apple RGB"

于 2013-10-16T09:36:35.973 に答える
1

iOS 7.0 では、画像はツールバーの で色付けされtintColorます。

iOS 7.0 では、 のすべてのサブクラスが基本クラスからUIView動作を派生させます。tintColor

デフォルトでは、イメージ ( UIImage) は で作成されUIImageRenderingModeAutomaticます。

画像に設定した場合UIImageRenderingModeAutomatic、そのコンテキストに基づいてテンプレートまたはオリジナルとして扱われます。

特定のUIKit要素 (ナビゲーション バー、タブ バー、ツールバー、セグメント化されたコントロールなど) は、前景の画像を自動的にテンプレートとして扱いますが、背景の画像は元の画像として扱います。

画像ビューや Web ビューなどの他の要素は、それらの画像をオリジナルとして扱います。コンテキストに関係なく、画像を常にテンプレートとして扱いたい場合は、 を設定しUIImageRenderingModeAlwaysTemplateます。

画像を常にオリジナルとして扱いたい場合は、 を設定しUIImageRenderingModeAlwaysOriginalます。

詳細については、テンプレート イメージを参照してください。

于 2013-10-16T17:00:19.897 に答える