Ste*_*orn 6 macos cocoa objective-c
使用Snow Leopard时,默认伽马值从1.8变为2.2.我碰巧正在研究一些使用Cocoa提供的非常暗的自定义配色方案的Mac应用程序.在10.5它看起来很好,但在新的伽玛10.6,它更黑暗,真的很难在眼睛上.
使用[NSColor colorWithCalibratedRed:green:blue:alpha:]主题类中的众多对象来定义颜色方案.
有没有办法'转换'一个NSColor对象,以便它在10.5上显示与在10.5上完全一样?
我知道这可以在系统偏好设备中全局实现,但这不是我想要的.
我遇到的唯一真正的问题是深色渐变。10.4 仍然是一个有效的目标,所以我已经使用自己的基于 CGShading 对象的渐变包装类有一段时间了(NSGradient 仅是 10.5+)。
基于以下公式的简单非线性校正曲线可以提供帮助:
colour_component = pow(colour_component, 1.0/1.19);
Run Code Online (Sandbox Code Playgroud)
可以调整 1.19 值以创建不同的校正曲线。
如果在运行时(使用 Gestalt)检测到 10.6,则在计算渐变之前,曲线将应用于起始颜色和结束颜色的每个红色、绿色和蓝色分量。我没有改变 alpha 值。
我还添加了一个方便的用户首选项来打开和关闭此功能。
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |