2013-10-16 27 views
4

我遇到了png圖像的問題,它在iOS上與實際圖像相比顏色錯誤。UIImage在iOS中使用時看起來不一樣

無論我如何使用圖像,它總是獲取錯誤的顏色。我嘗試過UIButtonUIImageView,它給出了相同的結果。

這是一個非常標準的使用UIImage的:

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

第二圖像是如何看起來對iOS和第一個按鈕是如何看起來在我的Mac(Finder中和Photoshop):

First button is as the image looks on the Mac, second image is as the image look on iOS

正如你所看到的第二個按鈕有不同的綠色。 這是發生在使用這張照片的應用程序。它發生在模擬器和iPhone 5上。

什麼會導致此問題?這是否可以由Photoshop中的設置引起,圖像是在哪裏創建的?

+5

在Photoshop中檢查RGB配置文件,如果使用某些配置文件,圖像可以在系統中顯示不同的顏色。 – Tim

+0

你在iOS 7.0上檢查它? –

+0

@NileshPatel是的,我在iOS 7.0上檢查它。 –

回答

3

正如傑夫在評論中寫道,這是RGB配置文件的問題。

我設法在Photoshop中轉換顏色配置文件來解決這個問題:

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

+0

你應該標記接受 – nielsbot

+0

我不能直到明天:)有兩天的時間來接受你自己的答案。 –

1

在iOS系統7.0,圖像與彩色工具欄的tintColor

在iOS 7.0中,UIView的所有子類從基類派生出它們的行爲爲tintColor

默認情況下,使用UIImageRenderingModeAutomatic創建圖像(UIImage)。

如果您在圖像上設置了UIImageRenderingModeAutomatic,則會根據其上下文將它視爲模板或原始模板。

某些UIKit元素(包括導航欄,選項卡欄,工具欄,分段控件)自動將它們的前景圖像作爲模板處理,儘管它們的背景圖像被視爲原始圖像。

其他元素(如圖像視圖和網絡視圖)將其圖像視爲原件。如果您希望將圖片永遠視爲模板而不考慮上下文,請設置UIImageRenderingModeAlwaysTemplate

如果您希望將圖像始終視爲原始圖像,請設置爲UIImageRenderingModeAlwaysOriginal

有關更多信息,請參閱Template Images

+0

謝謝你的背景資料,它幫助我解決了我已經加載的所有圖像在tintColor中顯示的問題! – Dirk

相關問題