RGBAdjust

RGBAdjust (clip, float "r", float "g", float "b", float "a", float "rb", float "gb", float "bb", float "ab", float "rg", float "gg", float "bg", float "ag", bool "analyze")

Данный фильтр умножает значение каждого цветового канала на заданную величину, добавляет заданное смещение, затем настраивает (adjust)  необходимую степень контрастности (relevant gamma), ограничивая результат значениями от 0 до 255. Обратите внимание, что вызов функции с такими параметрами RGBAdjust(1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1) не вносит изменений в клип.

r (-255.0 ... 255.0; по умолчанию 1.0): Этот параметр определяет величину масштабирования красного (r = Red) цвета. Например, при параметре масштабирования 3.0 значение канала красного умножается в каждой точке на 3. Зеленый (g = Green) и синий (b = Blue) обрабатываются аналогично.
a (-255.0 ... 255.0; по умолчанию 1.0) определяет величину масштабирования альфа-канала. Альфа-канал представляет информацию о прозрачности для каждой точки (on a per-pixel basis). Нулевое значение альфы означает полную прозрачность, значение 255 - полную непрозрачность точки.

В версии 2.56 смещения rb, gb, bb, ab (по умолчанию 0.0) добавляют свои величины к  красному, зеленому, синему или альфа-каналам. Например, rb = 16 добавит 16 к значению красного в каждой точке, а -32 вычтет 32 из значений красного в каждой точке.

Также в  версии 2.56 показатели (exponents) rg, gg, bg, ag (по умолчанию 1.0) настраивают степень контрастности красного, зеленого, синего или альфа-канала. Например, rg = 1.2 увеличит яркость значений красного в каждой точке, а gg = 0.8 сделает значения зеленого более темным.

В версии  2.56  параметр analyze (может быть true - истина или false - ложь) определяет, выводить ли на экран статистику о цветах. Статистика включает:

    - максимальные и минимальные значения по каждому каналу;

    - средние величины и стандартные отклонения по каждому каналу;

    - нестрогие (loose) минимумы и максимумы.

    "нестрогие" (loose) значения даны, чтобы отбросить слишком яркие или слишком темные шумовые точки, порождающие искусственно низкий минимум или высокий максимум  (это просто значит, что доля 255 из 256 (т.е. 99.6%) от всех точек в красном/зеленом/синем канале, оказалась выше (ниже) этого нестрогого минимума (максимума)).

Следует помнить, что ВСЕ значения не масштабируются с целью оптимальной подгонки каналов к единице (для этого следует использовать levels), потому выполнив нечто подобное:

RGBAdjust(2, 1, 1, 1)

можно запросто получить значительное количество обрезанных красных значений. Если Вы ХОТИТЕ в итоге иметь обрезанные красные максимумы, тогда вперед - но если Вам нужно УВЕЛИЧИТЬ красную составляющую без обрезки пиков, следует выполнить

Levels(0, 1, 255, 0, 128).RGBAdjust(2, 1, 1, 1)

При этом выполнится масштабирование всех уровней (и средней яркости) наполовину, а потом удвоение красного. Или вот более компактный вариант

RGBAdjust(1.0, 0.5, 0.5, 1.0)

Здесь красный остается без изменений, а зеленый и синий уменьшается наполовину.

Для инвертирования альфа-канала сделайте

RGBAdjust(a=-1.0, ab=255)

Таким образом значения прозрачности в каждой точке становятся a=(255-a)

История изменений:

v2.56добавлены параметры offsets, gamma, analyze

$English Date: 2005/05/05 06:19:11 $
Русский перевод 21.05.2005 Turyst04 [email protected]
При участии Fizick http://bag.hotmail.ru