Режимы смешивания (альтернативно режимы смешивания [1] или режимы смешивания [2] ) в цифровом редактировании изображений и компьютерной графике используются для определения того, как два слоя смешиваются друг с другом. Режим смешивания по умолчанию в большинстве приложений — просто скрыть нижний слой, покрыв его тем, что присутствует в верхнем слое (см. альфа-композицию ); поскольку каждый пиксель имеет числовые значения, существует также много других способов смешивания двух слоев.
Большинство программ для редактирования графики , таких как Adobe Photoshop и GIMP , позволяют пользователям изменять основные режимы смешивания, например, применяя различные уровни непрозрачности к верхнему «слою». Верхний «слой» не обязательно является слоем в приложении; он может быть применен с помощью инструмента рисования или редактирования. Верхний «слой» также называется «слоем смешивания» и «активным слоем».
В формулах, показанных на этой странице, значения изменяются от 0,0 (черный) до 1,0 (белый).
Это стандартный режим наложения, который использует только верхний слой [3], не смешивая его цвета с цветами слоя под ним: [ нужен пример ]
где a — значение цветового канала в нижележащем слое, а b — значение соответствующего канала верхнего слоя. Результат обычно объединяется с нижним слоем с помощью «простого» (b над a) альфа-композиции (создания фактической формулы ), но возможны и другие операции Портера-Даффа. [3] Результатом этапа компоновки является форма верхнего слоя, определяемая его альфа-каналом, появляющаяся над нижним слоем.
Режим растворения берет случайные пиксели из обоих слоев. При большей непрозрачности верхнего слоя, чем у нижнего слоя, большинство пикселей берется из верхнего слоя, а при низкой непрозрачности большинство пикселей берется из нижнего слоя. В этом режиме наложения не используется сглаживание , поэтому изображения могут выглядеть зернистыми и резкими.
Adobe Photoshop генерирует псевдослучайный шаблон дизеринга шума при запуске, при этом каждому пикселю в двумерном растровом массиве назначается значение серого (R=G=B) и значение альфа 1 («вкл»). По мере уменьшения непрозрачности верхнего слоя значение альфа некоторых серых пикселей переключается с 1 на 0 («выкл»), в результате чего пиксели изображения, соответствующие пикселю с серым значением в растровом массиве, либо включены (видимы, непрозрачны), либо выключены (невидимы, прозрачны), без градации непрозрачности.
Режимы смешивания Multiply и Screen являются базовыми режимами смешивания для затемнения и осветления изображений соответственно. Существует множество их комбинаций, таких как Overlay, Soft Light ( см. ниже ), Vivid Light, Linear Light и Pin Light.
Режим смешивания Multiply берет значения канала RGB от 0 до 1 каждого пикселя в верхнем слое и умножает их на значения соответствующего пикселя из нижнего слоя. Всякий раз, когда какой-либо слой был ярче черного, композит темнее; поскольку каждое значение меньше 1, их произведение будет меньше каждого начального значения, которое было больше нуля.
где a — значение базового слоя, а b — значение верхнего слоя.
Этот режим является коммутативным : обмен двумя слоями не меняет результат. Если два слоя содержат одно и то же изображение, режим наложения «Multiple» эквивалентен квадратичной кривой или гамма-коррекции с γ=2. Для редактирования изображений иногда удобнее просто перейти в диалоговое окно «Curves» программного обеспечения, поскольку это дает большую гибкость в форме кривых. Или можно использовать диалоговое окно «Levels»: среднее число обычно равно 1/γ, поэтому можно просто ввести 0,5.
Если один слой содержит однородный цвет, например, серый цвет (0.8, 0.8, 0.8), режим наложения "multiple" эквивалентен кривой, которая является просто прямой линией. Это также эквивалентно использованию этого значения серого в качестве непрозрачности при выполнении наложения "normal mode" с черным нижним слоем.
В режиме смешивания Screen значения пикселей в двух слоях инвертируются, умножаются, а затем инвертируются снова. Результат противоположен Multiply: где бы один из слоев ни был темнее белого, композит ярче.
где a — значение базового слоя, а b — значение верхнего слоя.
Этот режим является коммутативным : обмен двумя слоями не меняет результат. Если один слой содержит однородный серый, режим наложения Screen эквивалентен использованию этого значения серого в качестве непрозрачности при выполнении наложения в «нормальном режиме» с белым верхним слоем.
Overlay объединяет режимы наложения Multiply и Screen. [4] Там, где базовый слой светлый, верхний слой становится светлее; там, где базовый слой темный, верх становится темнее; там, где базовый слой средне-серый, верх не изменяется. Наложение с тем же изображением выглядит как S-образная кривая.
где a — значение базового слоя, а b — значение верхнего слоя.
Когда получается линейная интерполяция между 0 и ; когда получается линейная интерполяция между и 1. Этот режим не является коммутативным. Однако его можно сделать коммутативным, изменив условие на или .
Hard Light также является комбинацией Multiply и Screen. Hard Light влияет на отношение слоя смешивания к базовому слою таким же образом, как Overlay влияет на отношение базового слоя к слою смешивания.
Обратная зависимость между Overlay и Hard Light делает их «переключаемыми режимами смешивания». [ необходима цитата ]
Мягкий свет наиболее тесно связан с Overlay и похож на Hard Light только по названию. Применение чистого черного или белого не приводит к чистому черному или белому. [ нужен пример ]
Существует множество различных методов применения мягкого смешивания света. [5] Все ароматы дают одинаковый результат, когда верхний слой чисто черный; то же самое, когда верхний слой чисто нейтральный серый. Ароматы Photoshop и illusions.hu также дают одинаковый результат, когда верхний слой чисто белый (различия между ними в том, как интерполировать между этими тремя результатами).
Эти три результата совпадают с гамма-коррекцией нижнего слоя с γ=2 (для верхнего черного), неизмененного нижнего слоя (или, что то же самое, γ=1; для верхнего нейтрального серого) и γ=0,5 (для верхнего белого).
Формула, используемая Photoshop с 2012 года, имеет разрыв локального контраста, и другие формулы исправляют это. Формула Photoshop: [6]
где a — значение базового слоя, а b — значение верхнего слоя. В зависимости от b получается линейная интерполяция между тремя гамма-коррекциями: γ=2 (для b =0), γ=1 (для b =0,5) и γ=0,5 (для b =1).
Формула Пегтопа [6] более гладкая и исправляет разрыв [ необходим лучший источник ] при b = 0,5:
Это линейная интерполяция между режимами смешивания Multiply (для a = 0) и Screen (для a = 1). Ее также можно рассматривать как линейную интерполяцию между гамма-коррекцией с γ = 2 (для b = 0) и определенной тональной кривой (для b = 1). (Последняя кривая эквивалентна применению γ = 2 к негативу изображения.)
Третья формула, определенная illusions.hu [7], исправляет разрыв другим способом, выполняя гамма-коррекцию с γ в зависимости от b :
При b = 0 по-прежнему получается γ = 2, при b = 0,5 получается γ = 1, при b = 1 получается γ = 0,5, но это не линейная интерполяция между этими тремя изображениями.
Формула, указанная в последних проектах W3C [3] для SVG и Canvas, математически эквивалентна формуле Photoshop с небольшой вариацией, где b≥0,5 и a≤0,25:
где:
Эту же формулу использовал Каир [8] и в более ранней документации PDF . [9]
Это по-прежнему линейная интерполяция между 3 изображениями для b = 0, 0,5, 1. Но теперь изображение для b = 1 не γ = 0,5, а результат тональной кривой, которая отличается от кривой γ = 0,5 для малых значений a : в то время как гамма-коррекция с γ = 0,5 может увеличить значение a во много раз, эта новая кривая ограничивает увеличение a коэффициентом 4.
Осветление и затемнение изменяют яркость изображений, вдохновленное осветлением и затемнением, выполняемым в темной комнате. Осветление осветляет изображение, а затемнение затемняет его. Осветление изображения то же самое, что и осветление его негатива (и наоборот).
Это смешивание просто делит значения пикселей одного слоя с другим, но это полезно для осветления фотографий, если цвет серый или ниже. Это также полезно для удаления цветового оттенка с фотографии. Если вы создаете слой, который является цветом оттенка, который вы хотите удалить, например, бледно-голубой, для сцен со слишком холодной цветовой температурой, режим разделения вернет этот цвет к белому в результирующей композиции, так как любое значение, деленное само на себя, равно 1,0 (белый).
Этот режим смешивания просто добавляет значения пикселей одного слоя к другому. В случае значений выше 1 (в случае RGB) отображается белый цвет. « Linear Dodge » дает тот же визуальный результат. Поскольку он всегда дает те же или более светлые цвета, чем входные данные, он также известен как «плюс светлее». Вариант вычитает 1 из всех конечных значений, а значения ниже 0 становятся черными; этот режим известен как «плюс темнее».
Этот режим смешивания просто вычитает значения пикселей одного слоя из другого. В случае отрицательных значений отображается черный цвет. В некоторых приложениях, таких как Krita , также доступно "Обратное вычитание". [1]
Разница вычитает нижний слой из верхнего слоя или наоборот, чтобы всегда получать неотрицательное значение. Смешивание с черным не приводит к изменениям, поскольку значения для всех цветов равны 0. ( Значение RGB для черного цвета равно (0,0,0).) Смешивание с белым инвертирует изображение.
Одной из основных утилит для этого является процесс редактирования, когда его можно использовать для проверки выравнивания изображений с похожим содержанием. Исключение — очень похожий режим смешивания с более низким контрастом.
Darken Only создает пиксель, который сохраняет наименьшие компоненты пикселей переднего плана и фона. Если пиксель переднего плана имеет компоненты , а фон имеет , то результирующий пиксель: [10]
Lighten Only имеет действие, противоположное Darken Only . Он выбирает максимум каждого компонента из пикселей переднего плана и фона. Математическое выражение для Lighten Only : [10]
Несколько приложений, таких как Peacock от Aviary и Krita от KDE [1], предоставляют режимы смешивания булевой арифметики. Они объединяют двоичное расширение шестнадцатеричного цвета в каждом пикселе двух слоев с использованием логических вентилей булевой логики . Альфа верхнего слоя управляет интерполяцией между изображением нижнего слоя и объединенным изображением.
Режимы смешивания оттенка , насыщенности , цвета и яркости в Photoshop основаны на цветовом пространстве с измерениями оттенка, цветности и яркости. Примечание: это пространство отличается от HSL и HSV, и только измерение оттенка является общим для всех трех. Подробности см. в статье HSL и HSV .
В отличие от всех предыдущих описанных режимов смешивания, которые работают на каждом канале изображения независимо, в каждом из этих режимов некоторые измерения берутся из нижнего слоя, а остальные — из верхнего. Цвета, которые оказываются вне гаммы, переносятся внутрь путем сопоставления вдоль линий постоянного оттенка и яркости. Это делает операции необратимыми — после применения верхнего слоя в одном из этих режимов смешивания в некоторых случаях невозможно восстановить внешний вид исходного (нижнего) слоя, даже применив копию нижнего слоя в том же режиме смешивания над обоими.
Поскольку эти режимы смешивания основаны на цветовом пространстве, которое гораздо ближе, чем RGB, к перцептивно значимым измерениям, его можно использовать для коррекции цвета изображения без изменения воспринимаемой яркости и для управления контрастом яркости без изменения оттенка или цветности. Режим яркости обычно используется для повышения резкости изображения , поскольку человеческое зрение гораздо более чувствительно к мелкомасштабному контрасту яркости, чем к цветовому контрасту. (См. Контраст (зрение) )
Немногие редакторы, кроме Photoshop, реализуют это же цветовое пространство для своих аналогов этих режимов смешивания. [3] Вместо этого они обычно основывают свои режимы смешивания на HSV (он же HSB) или HSL. Режимы смешивания, основанные на HSV, обычно обозначаются как оттенок , насыщенность и яркость . Использование HSL или HSV имеет то преимущество, что большинство операций становятся обратимыми (по крайней мере, в теории), но недостаток в том, что размеры HSL и HSV не так значимы для восприятия, как размеры пространства, используемого Photoshop.
Результат применения нескольких из этих режимов линейно зависит от уровня пикселей верхнего слоя. В таких случаях, когда верхний слой чисто черный, получается определенное преобразование нижнего слоя (которое может быть просто чисто черным или чисто белым изображением). Когда верхний слой чисто белый, получается еще одно такое преобразование. Промежуточные значения серого описаны выше с использованием ползунка непрозрачности на втором преобразовании.
В таких случаях применение режима смешивания эквивалентно обычному смешиванию :
(Это предполагает, что маска может быть цветной, а ее каналы R, G, B маскируют каналы изображения независимо. Многие программы обработки изображений не допускают использования таких масок; для них эта эквивалентность справедлива только для верхних слоев в оттенках серого.)
Некоторые приложения позволяют пользователю применять режимы смешивания к инструментам рисования, таким как инструмент «Кисть» в Photoshop или любые инструменты рисования в GIMP. Когда режимы смешивания используются с этими инструментами, результат рассчитывается на основе пикселей, уже существующих на целевом слое. Если в данный момент пикселей нет, то «нарисованные» пиксели создаются так, как если бы был режим смешивания «Обычный». Последующие штрихи, которые перекрываются, затем рассчитываются на основе режима смешивания инструмента, и результат применяется непосредственно к слою. Ключевое отличие смешивания инструментов от смешивания слоев заключается в том, что результаты смешивания инструментов, как правило, не могут быть скорректированы после выполнения штриха, за исключением шага назад с помощью команды «Отменить» приложения; смешивания слоев могут быть скорректированы с помощью непрозрачности или даже переключены, поскольку они применяются динамически между слоями. Иными словами, инструменты рисования изменяют пиксели на слое; режимы смешивания, примененные к двум слоям, не изменяют никаких пикселей, а влияют только на итоговое визуальное изображение.
Это различие полезно для создания различных эффектов на одном слое, например, при применении техник осветления и затемнения, когда рисование с низкой непрозрачностью в режимах экран или умножение позволяет пользователю более органично наращивать или уменьшать результаты на одном слое.
Книги