
21.11.2011, 18:05
|
|
Регистрация: Oct 2008
Сообщений: 41
|
Боюсь, что с матрицей не выйдет вообще. Это ведь всего лишь линейное преобразование, ну т.е.
px.r = k1 * px.r + k2
px.g = k1 * px.b + k2
px.g = k1 * px.g + k2
ну только можно ещё делать k1 и k2 разные для разных цветов и делать цвета зависимыми друг от друга...
Кстати, тут есть ещё такое соображение: вроде как яркость удаётся воспроизвести кривыми, а кривые вроде как применяются независимо к каждому цветовому каналу. Если вышесказанное верно, то и при изменении яркости каналы не зависят друг от друга (хорошо, если хотя бы так).
P.S. Загвоздка в том, что изменить яркость можно каким угодно способом: умножить каждый конал на константу, добавить константу, извлечь корень, взять экспоненту, синус, да что угодно.... Всегда будет получаться ярче и всегда по-разному.
Только вот что именно делает фотошоп?
Добавлено через 25 минут
Мда, вот если бы фотошоп умел не только импортировать фильтры PixelBender, но и экспортировать их... уж ладно без исходников (может ноухау какое), но хотя бы байткод...
Добавлено через 1 час 9 минут
ещё вот, если кому-нибудь что-нибудь говорит:
brightness +70 очень похоже на
px.r = sin(0.5*PI*px.r);
px.g = sin(0.5*PI*px.g);
px.b= sin(0.5*PI*px.b);
но на другие значения brightness распространить это у меня не получается...
|