Познакомимся со слоями — мощным инструментом, который существует во очень многих графических редакторах, в том числе и в GIMP. Слои в GIMP можно рассматривать как стопку листов сквозь которые смотрят зритель. Некоторые листы прозрачны, некоторые непрозрачны и скрывают все, что находится под ними, некоторые обладают странными физическими свойствами, меняя вид расположенных ниже изображений, но вместе они создают нужный нам эффект. Можно просто создать прозрачный слой поверх картинки и рисовать по нему, не затрагивая оригинальное изображение, что позволит легко отменить или модифицировать изменения.
Как уже упоминалось выше слои могут обладать некоторыми свойствами, от которых зависит видимость ниже лежащих слоев. Чаще всего это математические преобразования значений цветов пикселей на слоях. Давайте рассмотрим какие вообще возможны способы смешивания. Для простоты договоримся о следующем: у нас всего два слоя, нижний будем называть «Изображение», верхний — «Маска». Значения яркости пикселей нижнего слоя будем обозначать I, а верхнего — M. Значения яркостей пикселей результирующего изображения обозначим как E.
Самый простой способ смешивания. Берутся значения пикселей с маски так, как они есть.
<latex> E = M </latex>
«Растворяет» маску в изображении выбирая случайные точки с обоих слоев где прозрачнее маска, берутся пиксели с изображения и наоборот.
Перемножает значение яркостей слоев и делит их на 255, т.е.
<latex>E=\frac{I*M}{255}</latex>
Если один из слоев белый (значение всех пикселей равно 255), то результат будет соответствовать второму слою. Если черный (все пиксели 0), то результат будет черным. Изображение становится более темным.
Умножает значения пиекселей изображения на 256 и делит на значения пикселей маски плюс единица (чтобы избежать деления на нуль)
<latex>E=\frac{I*256}{M+1}</latex>
Инвертирует значения пикселей слоев, перемножает их между собой, делит на 255 и опять инвертирует. Изображение становится несколько светлее, менее контрастным. Фактически этот режим противоположен Умножению.
<latex>E=255-\frac{(255-I)*(255-M)}{255}</latex>
Комбинирует режимы смешивания Умножение и Экран. Яркие части становятся ярче, а темные темнее.
<latex>E=\frac{I*(I+2M*(255-I)}{255}</latex>
Как и следует из названия высветляет значения пикселей, однако значения некоторых цветов могут инвертироваться.
<latex>E=\frac{I*256}{(255-M)+1}</latex>
Режим обратный предыдущему, снижает общую яркость изображения.
<latex>E=255-\frac{(255-I)*256}{M+1}</latex>
Более сложный режим смешивания, поскольку метод преобразования зависит от яркости пикселя. Увеличивает контраст изображения.
<latex> M>128: E=255-\frac{(255-I)*(255-(2*(M-128)))}{256} </latex>
<latex> M\leq 128: E=\frac{I*M*2}{256} </latex>
Более мягкий вариант режима Перекрытие. Смягчает края и снижает контраст изображения. Для вычислений используются значения для из режима Экран
<latex>R_s=255-\frac{(255-I)*(255-M)}{255}</latex>
<latex>E=\frac{((255-I)*M*I)+(I*R_s)}{255}</latex>
Режим предназначен для повышения рельефности изображения, повышая локальный контраст. Как следует из названия повышает зернистость изображения.
<latex>E=I-M+128</latex>
Режим противоположный предыдущему, снижает зернистость изображения.
<latex>E=I+M-128</latex>
Просто считается разность значений яркостей пикселей между слоями и берет абсолютное значение результата. Изображение может инвертироваться.
<latex>E=\vert I-M \vert</latex>
Складываются значения пикселей двух слоев, результат обычно светлее чем исходное изображение.
<latex>E=\min((M+I),255)</latex>
Опять же просто вычитает значения яркостей пикселей друг из друга, но в отличие от Разности не берет абсолютное значение, а считает все отрицательные значения нулевыми.
<latex>E=\max((I-M),0)</latex>
Сравнивает значения яркостей пикселей между слоями и выбирает самый темный.
<latex>E=\min(M,I)</latex>
Действует ровно наоборот, выбирает самые яркие значения пикселей двух слоев.
<latex>E=\max(M,I)</latex>
Берет значение тона с маски, а яркость и насыщенности с изображения.
Берет значение насыщенности с маски, а яркость и тона с изображения.
Берет тон и насыщенность маски, а яркость с изображения.
Берет яркость маски, а тон и насыщенность с изображения. Можно использовать для выделения деталей в тенях или светах, без изменения тона картинки.