Pregunta

Surface.blit tiene un nuevo parámetro en 1.8: mezcla. Se definen los siguientes valores:

  • 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

¿Alguien puede explicar qué significan estos modos?

¿Fue útil?

Solución

Puede encontrar el origen de las operaciones de mezcla aquí: surface.h

Básicamente, ADD agrega los dos píxeles de origen y recorta el resultado en 255. SUB resta los dos píxeles y clips en 0.

MULT : result = (p1 * p2) / 256

MIN : seleccione el valor más bajo de cada canal (no el píxel completo), de modo que si pixel1 es (100,10,0) y pixel2 es (0,10,100) , obtienes (0,10,0)

MAX : opuesto a MIN (es decir, (100,10,100) )

Y hay un modo de mezcla adicional que no es obvio en los documentos: 0 (o simplemente omita el parámetro). Este modo '' sellará " superficie de origen en el destino. Si la superficie de origen tiene un canal alfa, esto determinará qué tan fuerte es cada píxel es ( 0 = sin efecto, 255 = copiar píxel, 128 : resultado = .5 * fuente + .5 * destino ).

Efectos útiles: Para oscurecer un área determinada, use el modo de fusión 0, llene la superficie de la fuente / sello en negro y configure alfa en 10 : (0,0,0,10) .

Para aligerarlo, use blanco (255,255,255,10) .

Otros consejos

Esos son modos de fusión para componer imágenes una encima de la otra. El nombre del modo de fusión ya le indica la operación subyacente.

Las constantes BLEND_ * son simplemente alias para las constantes BLEND_RGB_ * y las variantes BLEND_RGBA_ * operan en los cuatro canales (incluido el alfa canal) en lugar de solo RGB.

Para obtener información general sobre los diferentes modos de fusión y sus respectivos efectos, consulte aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top