Ответы:
Теоретически это возможно путем создания собственного профиля ICC для вашего монитора. Однако создание профиля ICC не является тривиальным.
Вы можете увидеть эту способность, посмотрев на некоторые из профилей в /Library/ColorSync/Profiles/
. Например, профиль Grey Tone сжимает все цвета в одну черно-белую полосу.
Трехмерное представление профиля «Увеличение легкости» демонстрирует, как любой цвет может быть сопоставлен с любым другим цветом.
У этого подхода есть ряд проблем. Текст Mac OS X сглаживается . Инвертирование только черного с белым может привести к выделению текста; серые пиксели, окружающие каждую букву, не будут инвертированы.
Альтернативный подход заключается в изменении цветов, возвращаемых классом Apple NSColor . Этот класс предоставляет цвета и шаблоны, используемые в Mac OS X. Файл, в котором хранятся цвета разработчика, находится по адресу /System/Library/Colors/System.clr
.
Глядя на руководство Apple по программированию тем цветов , я подозреваю, что разработчик может загрузить файл в экземпляр NSColorList, изменить цвет и записать файл обратно.
Это противоречит совету Apple не вносить изменения в файлы /System
, но это, вероятно, ваше лучшее решение. Задача модификации требует кого-то со знанием Objective-C и доступным временем консультирования.