Artículos

Blending Modes con PixelMath

por Enzo De Bernardini

El siguiente listado de ejemplos muestra como recrear diferentes blending modes entre dos imágenes utilizando PixelMath (ver también la publicación original en el foro de PixInsight). Para ello se ha utilizado como imágenes de ejemplo dos gradientes en escala de grises, de negro a blanco, uno vertical (IMG1) y otro horizontal (IMG2), de manera tal que en términos de "capas" el blending mode es aplicado a la IMG2 la cual estaría "por encima" de IMG1. Este detalle es importante para las expresiones no conmutativas (detallado entre paréntesis).

Los gradientes fueron creados con PixelMath, y uno de ellos rotado con FastRotation en 90º contra-reloj. Luego los correspondientes IDs fueron editados (ver como cambiar el ID).

Expresión de PixelMath (RGB/K) para crear el gradiente:

max( 0,  X() )

Gradientes utilizados:

PixelMath BlendPixelMath Blend

  • Darken
    min( IMG1, IMG2 )
    Darken
  • Multiply
    IMG1 * IMG2
    Multiply
  • Color Burn (no conmutativa)
    ~(~IMG1 / IMG2)
    Color Burn
  • Linear Burn
    IMG1 + IMG2 - 1
    Linear Burn
  • Lighten
    Max( IMG1, IMG2 )
    Lighten
  • Screen
    ~(~IMG1 * ~IMG2)
    Screen
  • Color Dodge (no conmutativa)
    IMG1 / ~IMG2
    Color Dodge
  • Overlay (no conmutativa)
    iif( IMG1 > 0.5, ~(~(2*(IMG1 - 0.5)) * ~IMG2), 2*IMG1*IMG2 )
    Overlay
  • Soft Light (no conmutativa)
    iif( IMG2 > 0.5, ~(~IMG1 * ~(IMG2 - 0.5)), IMG1*(IMG2 + 0.5) )
    Soft Light
  • Hard Light (no conmutativa)
    iif( IMG2 > 0.5, ~(~IMG1 * ~(2*(IMG2 - 0.5))), 2*IMG1*IMG2 )
    Hards Light
  • Hard Mix
    iif( IMG1 < 1 - IMG2, 0, 1 )
    Hards Mix
  • Vivid Light (no conmutativa)
    iif( IMG2 > 0.5, ~(~IMG1/(IMG2 - 0.5)/2), IMG1/~(2*IMG2) )
    Vivid Light
  • Linear Light (no conmutativa)
    iif( IMG2 > 0.5, IMG1 + 2*(IMG2 - 0.5), IMG1 + 2*IMG2 - 1 )
    Linear Light
  • Pin Light (no conmutativa)
    iif( IMG2 > 0.5, Max( IMG1, 2*(IMG2 - 0.5) ), Min( IMG1, 2*IMG2 ) )
    Pin Light
  • Difference
    IMG1 -- IMG2
    Difference
  • Exclusion
    0.5 - 2*(IMG1 - 0.5)*(IMG2 - 0.5)
    Exclusion
  • Substract
    IMG1 - IMG2
    Subtract

PM_BlendingModes.xpsm
Colección de íconos de instancia de PixelMath.

Última actualización: 27/11/2023 03:36 UT