NSColor, 10,6 и Gamma 2.2 - PullRequest
6 голосов
/ 11 мая 2010

В Snow Leopard гамма по умолчанию изменена с 1,8 до 2,2. Я работаю над несколькими приложениями для Mac, которые используют очень темную пользовательскую цветовую схему, предоставленную Cocoa. На 10.5 он выглядит хорошо, но на 10.6 с новой гаммой он намного темнее и очень плохо смотрится.

Цветовая схема определяется с использованием многочисленных [NSColor colorWithCalibratedRed:green:blue:alpha:] объектов в классе темы.

Есть ли способ "преобразовать" объект NSColor, чтобы он отображался на 10,6 точно так же, как на 10,5?

Я знаю, что это может быть достигнуто глобально в Системных настройках, но это не то, чего я добиваюсь.

Ответы [ 2 ]

0 голосов
/ 14 мая 2010

Единственные реальные проблемы, с которыми я сталкиваюсь, - это градиенты темного цвета. 10.4 все еще является допустимой целью, поэтому я уже некоторое время использую свой собственный класс-оболочку градиента, основанный на объектах CGShading (только NSGradient 10.5+).

Может помочь простая нелинейная корректирующая кривая, основанная на приведенной ниже формуле:

colour_component = pow(colour_component, 1.0/1.19);

Значение 1.19 можно отрегулировать для создания различных корректирующих кривых.

Если 10.6 обнаружено во время выполнения (с использованием Гештальта), кривая применяется к каждому из красного, зеленого и синего компонентов как для начального, так и для конечного цветов перед вычислением градиента. Я оставил альфа-значения нетронутыми.

Я также добавил удобную настройку пользователя, чтобы включить и выключить ее.

0 голосов
/ 11 мая 2010

Лучше всего сохранить цветовой профиль для дисплея, на котором цвет выглядел хорошо.

Затем используйте цветовой профиль для используемого в данный момент дисплея, чтобы скрыть цвет.

По сути, у вас будет:

(Исходный цвет с исходным профилем), преобразованный в (Новый цвет с текущим цветовым профилем).

У вас всегда будет три из четырех предметов - вам просто нужно вычислить новый цвет.

Для получения дополнительной информации я бы предложил прочитать:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/DrawColor/DrawColor.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...