【问题标题】:NSImage color shift on Snow Leopard雪豹上的 NSImage 颜色偏移
【发布时间】:2010-02-10 19:41:41
【问题描述】:

我的应用程序通过将各种其他 NSImage 组合在一起来创建 NSImage。原始图像是使用 [NSBitmapImageRep imageRepWithContentsOfFile:] 从文件中加载的。最终图像随即显示在屏幕上。

一些 10.6 客户报告说他们看到的图像(有时)发生了颜色变化。具体来说,所有明亮的颜色看起来都暗淡无光。蓝色似乎向紫色方向移动。

我知道这一定与 NSImage 或 NSBitmapImageRep 对色彩空间、伽玛或 ColorSync 的处理有关吗?我知道雪豹有伽马变化。

有人知道我应该从哪里开始吗?由于无法重现问题,因此很难排除故障,但我可以从客户的屏幕截图中看到颜色不正确。

有人见过这个吗?

【问题讨论】:

  • 原图有个人资料吗?

标签: macos cocoa quartz-graphics


【解决方案1】:

蓝色似乎向紫色方向移动。

这是 Snow Leopard 中的一个错误。在通用 RGB 中绘制的任何近似蓝色的东西都会被颜色校正为近似紫色。您甚至可以在菜单亮点中看到这一点。

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

(如果您不相信那是紫色,请打开 DigitalColor Meter。它在渐变底部附近最紫色。)

我提交了错误报告:x-radar://problem/7542845。我包含了大量的照片和视频证据,您可以在the OpenRadar copy 中看到这些证据。我邀请您提交一份副本。

这不会发生在每个人身上;如果上面的图片看起来不错,请观看the video,它具有视频转换中的红移,并显示了 DCM 中的差异。

【讨论】:

  • 这些客户发给我的屏幕截图将浅蓝色变为紫色,而且所有明亮的颜色看起来都明显不同,比如纯红色变成了栗色,亮紫色变成了蓝紫色。他们说它似乎随着时间的推移而消失,退出并重新打开应用程序使其恢复正常。这是我经常重绘的图像。我想知道每次绘制缓存是否都会稍微移动。你找到好的解决方法了吗?解决方案是不使用通用 RGB 吗?同时,我将询问这些客户他们使用的是哪种显示器。
  • “我想知道缓存是否在每次绘制时都会稍微移动。”听起来很有道理。无论如何(也许您正在捕获输出并稍后将其用作输入?)。 “你找到好的解决方法了吗?解决方案是不使用通用 RGB 吗?”使用主显示器的色彩空间应该是一种有效的解决方法。
  • 哇,我刚刚通过在程序运行时将显示配置文件(在我的 iMac 上)更改为“Adobe RGB (1998)”来重现这一点。 (虽然我还不能再次复制它。当我弄清楚发生了什么时,我会及时通知你!
  • 看起来如果我在设置为 Generic RGB 的情况下启动应用程序,然后将显示器的配置文件更改为其他任何内容,然后重新绘制合成图像,我的颜色会发生很大变化。我敢打赌,这些客户开始使用他们计算机的主显示器,然后插入一个外部显示器,将他们的主显示器切换到不同的配置文件。
  • 当我的应用程序在显示颜色配置文件为 Generic RGB 时创建 NSImage 时,我似乎看到了这种转变,然后坚持下去。如果颜色配置文件更改后再次绘制,则颜色都是错误的。这只发生在 10.6;颜色在 10.5 中不会以相同的步骤改变。
【解决方案2】:

Snow Leopard 更改了默认 gamma:http://support.apple.com/kb/HT3712

【讨论】:

  • 我看到了这个,但这如何适用于我的问题?您能提出解决方案吗?
  • 我怀疑如果只有少数 10.6 位客户(而不是所有 10.6 位用户)遇到问题,那么他们会将带有嵌入式伽马的图像与没有伽马的图像混合在一起。您可能需要添加 ColorSync 配置文件。见developer.apple.com/mac/library/qa/qa2004/qa1369.htmldeveloper.apple.com/mac/library/technotes/tn/tn2035.html
  • 我会查看这些链接。在这个应用程序中,用户没有提供他们自己的图像。它只是一组内置的图像,可以合成到背景图像上。我正在合成的 PNG 图像没有 ColorSync 配置文件,但预览在 Exif 选项卡中显示了一些不同的“颜色空间”值。支持图像来自 icns 文件并具有“通用 RGB 配置文件”ColorSync 配置文件。
猜你喜欢
  • 2012-12-10
  • 2011-03-05
  • 1970-01-01
  • 2012-01-10
  • 2012-03-14
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多