iOS: есть ли способ изменить цвет каждого пикселя на экране?

Как Apple изменяет цвет каждого отдельного пикселя на экране (т.е. оттенки серого/инверсия цветов), независимо от того, какому объекту принадлежит цвет. Очевидно, что он не считывает свойства цвета фона, поскольку он влияет даже на изображения.

Как можно подойти к этому?

Чтобы уточнить мой вопрос, как я могу изменить интенсивность/оттенок каждого пикселя на экране, подобно тому, как f.lux Имеет ли это?


person KingPolygon    schedule 19.07.2014    source источник
comment
Не совсем понятно, что вы спрашиваете. Есть ли особый способ, которым вы хотите изменить пиксели? Вы хотите сделать это в приложении или также для других приложений? И что вы имеете в виду сразу? В одном кадре? В одной строке кода? Одной инструкцией для GPU?   -  person Nikolai Ruhe    schedule 19.07.2014
comment
Спасибо @NikolaiRuhe, что нашли время оставить комментарий. Я обновил свой ответ.   -  person KingPolygon    schedule 19.07.2014


Ответы (1)


Как Apple изменяет цвет каждого пикселя на экране?

Apple, вероятно, использует API с именем CGSetDisplayTransferByTable, который недоступен для iOS.

Таблица преобразования дисплея управляет тем, как каждое возможное значение в каждом из трех каналов RGB отображается на экране, и может преобразовывать его в другое значение. Он работает аналогично инструменту «Кривые» в Photoshop. Используя правильную таблицу переноса, можно инвертировать экран, отрегулировать оттенок или повысить контрастность.

Поскольку таблица переноса является частью графического оборудования и всегда активна, это не влияет на производительность. В Mac OS фактически есть две таблицы переноса: одна для приложения и одна для ОС.

как я могу изменить интенсивность/оттенок каждого пикселя на экране

Без джейлбрейка нельзя.

person Nikolai Ruhe    schedule 19.07.2014
comment
Спасибо Николай, это похоже на ЛУТ? - person KingPolygon; 19.07.2014
comment
Я не знаю, имеете ли вы в виду что-то более особенное, чем общий термин общей таблицы поиска. Если нет, то да, Quartz Display Services, вероятно, использует LUT для реализации API-интерфейсов передачи изображения. - person Nikolai Ruhe; 19.07.2014