Что означают режимы наложения в pygame?
поверхность.блитировать имеет новый параметр в 1.8: blend. Следующие значения определено:
BLEND_ADDBLEND_SUBBLEND_MULTBLEND_MINBLEND_MAXBLEND_RGBA_ADDBLEND_RGBA_SUBBLEND_RGBA_MULTBLEND_RGBA_MINBLEND_RGBA_MAXBLEND_RGB_ADDBLEND_RGB_SUBBLEND_RGB_MULTBLEND_RGB_MINBLEND_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.
для получения общей информации о различных режимах смешивания и их соответствующих эффектах см. здесь.