2010-02-10 185 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