У меня есть опыт обработки изображений, но я новичок в GIMP. Я экспериментировал с объединением слоев с прозрачностью, и значения пикселей, которые вычисляет GIMP, не согласуются с уравнением, которое я видел на веб-сайтах GIMP и Photoshop.
Вот конкретный пример. Математика здесь применима к одному пикселю, но для удобства я предполагаю, что у меня везде есть изображения с одинаковым значением пикселя. Начните с 4-канального изображения, где все значения RGB равны 128, а альфа-слой — все 255, или как дробь 1,0. Используйте это как базовый слой. Теперь поместите поверх этого еще один слой со значениями RGB, равными 0, и значением альфа, равным 191, или в виде дроби 191/255 = 0,749. Когда эти слои объединяются в GIMP, я думал, что это делается математически с использованием следующего уравнения: выходное значение = basePixel * (1 - topAlpha) + topPixel * (topAlpha) = 128 * (1 - 0,749) + 0 * 0,749 = 32. Это не то, что я получаю с GIMP. Я получаю значение 66. Очевидно, я использую неправильное уравнение. Кто-нибудь знает ответ?
Я должен отметить, что уравнение работает, когда верхний слой равен 255, но не работает, когда верхний слой темный, например 0, как в моем примере. Это наводит меня на мысль, что GIMP не использует уравнение, представленное выше.
Что бы это ни стоило, режим наложения установлен на нормальный.
Ваши комментарии о Legacy, Default и Gamma мне чужды. Мне непонятно, как они повлияют на ответ.
Лучше использовать 0.0 ... 1.0
значения для каналов RGB. Итак, поместите белый слой (1.0,1.0,1.0)
(он же (255,255,255)
) с непрозрачностью 0,75 над слоем (0.5,0.5,0.5)
(ака (127,127,127)
):
output= 0.5*(1.00-0.75) + 1.00*0.75
= 0.5*0.25 + 0.75
= 0.125 + 0.750
= 0.875
А 0.875
в 0..255
ассортименте есть 223
. Но даже используя 0 ... 255
диапазон:
output= 128*(1.00-0.75) + 255*0.75
= 128*0.25 + 191.5
= 32 + 191.25
= 223
И инструмент Pointer соглашается:
С черным и альфа = 0,75 поверх 128:
output= 128*(1.00-0.75) + 0*0.75
= 128*0.25 + 0.0
= 32 + 0
= 32
И инструменты указателя соглашаются с этим:
PS: также зависит от того, о каком Gimp мы говорим. Вышесказанное верно для:
Legacy
Normal
режиме гамма изображенияDefault
Normal
режиме линейного освещенияИ работает так, как вы сообщаете в 2.10, используя Default
Normal
гамма-изображение, которое должно подразумевать преобразование в линейное, затем композицию, а затем обратное преобразование в гамму.
Хендерс64
ксеноид
ксеноид
Хендерс64
Хендерс64
Хендерс64
ксеноид
Хендерс64