Что означают режимы наложения в pygame?
поверхность.блитировать имеет новый параметр в 1.8: blend. Следующие значения определено:
BLEND_ADD
BLEND_SUB
BLEND_MULT
BLEND_MIN
BLEND_MAX
BLEND_RGBA_ADD
BLEND_RGBA_SUB
BLEND_RGBA_MULT
BLEND_RGBA_MIN
BLEND_RGBA_MAX
BLEND_RGB_ADD
BLEND_RGB_SUB
BLEND_RGB_MULT
BLEND_RGB_MIN
BLEND_RGB_MAX
может кто-нибудь объяснить, что эти режимы в смысле?
2 ответов
вы можете найти источник для операций смешивания здесь:поверхность.h
в основном, ADD добавляет два исходных пикселя и обрезает результат на 255. Вычитает два пикселя и клипы в 0.
MULT
: result = (p1 * p2) / 256
MIN
: выберите нижнее значение каждого канала (не весь пиксель), поэтому, если pixel1 (100,10,0)
и pixel2 составляет (0,10,100)
вы получаете (0,10,0)
MAX
: противоположность MIN (т. е. (100,10,100)
)
и есть дополнительный режим наложения, который не очевиден из документов: 0
(или просто оставьте параметр). Этот режим будет "штамповать" исходную поверхность в пункт назначения. Если исходная поверхность имеет альфа-канал, это будет определять, насколько "сильным" является каждый пиксель (0
=никакого эффекта, 255
=скопировать пиксель, 128
: result = .5*source + .5*destination
).
полезные эффекты: чтобы затемнить определенную область, используйте режим наложения 0, заполните поверхность источника / штампа черным и установите Альфа 10
: (0,0,0,10)
.
чтобы облегчить его, используйте белый (255,255,255,10)
.
это режимы смешивания для составления изображений друг на друга. Имя режима наложения уже сообщает вам базовую операцию.
на BLEND_*
константы-это просто псевдонимы для BLEND_RGB_*
константы и BLEND_RGBA_*
варианты работают на всех четырех каналах (включая альфа-канал) в отличие от только RGB.
для получения общей информации о различных режимах смешивания и их соответствующих эффектах см. здесь.