Вопрос

Поверхность.блит имеет новый параметр в версии 1.8:смешивать.Определены следующие значения:

  • 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

Может кто-нибудь объяснить, что означают эти режимы?

Это было полезно?

Решение

Исходный код операций смешивания можно найти здесь: поверхность.ч

По сути, ADD добавляет два исходных пикселя и обрезает результат до 255.SUB вычитает два пикселя и обрезает их до 0.

MULT: result = (p1 * p2) / 256

MIN:Выберите нижнее значение каждого канала (а не всего пикселя), поэтому, если пиксель1 (100,10,0) и пиксель2 (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.

Общую информацию о различных режимах наложения и их эффектах см. здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top