Таблицы поиска довольно часто используются для такой работы. Они маленькие и быстрые.
Но независимо от того, ищите ли вы или какую-то формулу, если конечный результат представляет собой файл изображения, а формат позволяет, лучше сохранить цветовой профиль или хотя бы значение гаммы в файле для последующего просмотра, а не пытаться настроить RGB ценит себя.
Причина: для типичных байтовых каналов R, G, B у вас есть 256 уникальных значений в каждом канале в каждом пикселе. Это почти достаточно хорошо, чтобы хорошо выглядеть человеческим глазом (я бы хотел, чтобы «байт» был определен как девять битов!). Любой вид математики, кроме тривиальной инверсии значений, отображал бы многие в один для некоторых из этих значений. Вывод не будет иметь 256 значений для выбора для каждого пикселя для R, G или B, но гораздо меньше. Это может привести к возникновению контуров, неровностей, цветового шума и других плохих.
Проблемы точности в стороне, если требуется какой-либо приличный уровень качества, все компостирование, микширование, смешивание, коррекция цвета, добавление бликов на поддельных линзах, хроматизация и все остальное должны выполняться в линейном пространстве RGB, где значения R , G и B пропорциональны интенсивности физического света. Образ математики имитирует физический свет математики. Но там, где предельная скорость жизненно важна, есть способы обмануть.