2010-02-10 115 views
1

我的應用程序通過合成各種其他NSImages來創建NSImages。原始圖像使用[NSBitmapImageRep imageRepWithContentsOfFile:]從文件加載。最終的圖像然後顯示在屏幕上。Snow Leopard上的NSImage色偏

有幾個10.6的客戶報告說他們看到的圖像(有時)已經改變了顏色。具體而言,所有鮮豔的顏色看起來都很沉悶,並且被沖淡。藍色似乎在紫色方向轉移。

我知道這與NSImage或NSBitmapImageRep處理colorspaces,gamma或ColorSync有什麼關係?我知道雪豹有伽瑪變化。

有誰知道我應該從哪裏開始?由於我無法重現問題,所以很難排除故障,但我可以從客戶的屏幕截圖中看出顏色不正確。

以前有人看過這個嗎?

+0

原始圖像是否有個人資料? – Chuck 2010-02-10 19:48:23

回答

2

藍似乎在紫色方向移動。

這是Snow Leopard中的一個錯誤。在Generic RGB中繪製的任何近似藍色的顏色都會被修正爲近似紫色。你甚至可以在菜單亮點中看到這一點。

http://boredzo.org/screenshots/SnowLeopard-PurpleIsTheNewBlue-MenuSelections.png http://boredzo.org/screenshots/SnowLeopard-PurpleIsTheNewBlue-MenuSelections.png

(如果你不相信,那是紫色的,打破了數碼測色計這是最紫色附近漸變的底部。)

我提交了一份bug報告:X-雷達: //問題/ 7542845。我收錄了大量照片和錄像證據,您可以在the OpenRadar copy中看到。我邀請您提交重複文件。

這不會發生在每個人身上;如果上面的圖片看起來不錯,請觀看the video,該圖片從視頻轉換中烘焙出紅移,並顯示DCM中的差異。

+0

截圖這些客戶給我發淡藍色轉變爲紫色,也是所有鮮豔的色彩看起來顯著不同,像紅色實已成爲棗紅色和亮紫色已經成爲淺藍紫色。他們說,這似乎褪色隨着時間的推移和退出並重新打開應用程序,使其恢復正常。這是我經常重繪的圖像。我想知道每次繪製時緩存是否會略微移動。 你找到一個好的解決方法嗎?解決方案是不使用通用RGB? 同時,我要問這些客戶他們正在使用什麼樣的顯示器。 – 2010-02-11 16:12:38

+0

「我不知道每次繪製時緩存是否會略微移動。」聽起來似乎是合理的。無論如何,類似的東西(也許你正在捕獲輸出,並在稍後使用它作爲輸入?)。 「你有沒有找到一個好的解決方法?解決方案是不使用通用RGB?「使用主顯示器的色彩空間應該是一個有效的解決方法。 – 2010-02-11 16:34:11

+0

哇,我只是通過在程序運行時將我的顯示器配置文件(在我的iMac上)更改爲「Adobe RGB(1998)」來重現此問題。 (雖然我還不能再次複製它,但當我弄清楚發生了什麼時,我會保持張貼的! – 2010-02-11 17:07:54

2

雪豹改變了默認伽馬:http://support.apple.com/kb/HT3712

+0

我看到了這個,但是這怎麼適用於我的問題呢?你能提出一個解決方案嗎? – 2010-02-10 19:47:31

+0

我會懷疑,如果只有幾個10.6的用戶遇到問題(而不是所有10.6用戶),那麼他們會將圖像與嵌入式伽瑪混合在一起,而沒有嵌入伽瑪。您可能需要添加ColorSync配置文件。請參閱http://developer.apple.com/mac/library/qa/qa2004/qa1369.html和http://developer.apple.com/mac/library/technotes/tn/tn2035.html – 2010-02-10 19:59:21

+0

我會研究這些鏈接。在這個應用程序中,用戶不提供他們自己的圖像。它只是一個內置的圖像集合,可以合成到背景圖像上。我合成的PNG圖像沒有ColorSync配置文件,但Preview在Exif選項卡中顯示「色彩空間」的幾個不同值。背景圖像來自icns文件並具有「通用RGB配置文件」ColorSync配置文件。 – 2010-02-10 20:59:54