NSColor, 10.6 и гамма 2.2

С Snow Leopard гамма по умолчанию, измененная от 1,8 до 2,2. Я, оказывается, работаю над несколькими приложениями для Mac, которые используют очень темную пользовательскую цветовую схему, обеспеченную Какао. На 10,5 это выглядит хорошо, но на 10,6 с новой гаммой это намного более темно и действительно твердо на глазах.

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

Есть ли любой способ 'преобразовать' NSColor возразите так, чтобы это отобразилось на 10,6 точно, как это было бы на 10,5?

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

6
задан fbrereto 11 May 2010 в 00:34
поделиться

2 ответа

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

Простая нелинейная кривая коррекции, основанная на формуле ниже, может помочь:

colour_component = pow(colour_component, 1.0/1.19);

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

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

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

0
ответ дан 18 December 2019 в 04:49
поделиться

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

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

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

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

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

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

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

0
ответ дан 18 December 2019 в 04:49
поделиться