2011-11-26 14 views
126

me gustaría saber lo que significa PorterDuff.Mode en los gráficos androide.¿Qué significa PorterDuff.Mode en graphics.What androide hace?

Sé que es un modo de transferencia .

también sé, que tiene atributos como DST_IN, Multiplicar etc.

+0

de mi reciente descubrimiento. si tiene imágenes superpuestas e intenta cambiar el filtro de color de una de ellas, ¡afecta a la otra imagen que se superpone! – jonney

Respuesta

268

He aquí un excelente artículo con ilustraciones por un ingeniero de Google:

http://ssp.impulsetrain.com/porterduff.html

PorterDuff se describe como una forma de combinar las imágenes como si fueran "piezas de formas irregulares de cartón" sobrepuesto en uno al otro, así como un esquema para mezclar las partes superpuestas.

La forma predeterminada de Android de componer imágenes es PorterDuff.Mode.SRC_OVER, lo que equivale a dibujar la imagen de origen/color sobre en la imagen de destino. En otras palabras, se hace lo que se puede esperar y dibuja la imagen de origen (el que está dibujando) en la parte superior de la imagen de destino (el lienzo) con la imagen de destino que muestra a través de la medida definida por el alfa de la imagen de origen.

PorterDuff infographic from the article

Puede utilizar la tecla de abajo para entender el álgebra que the Android docs usan para describir los otros modos (ver the article para una más completa desription con términos similares).

  • Sa Fuente alfa
  • Sc color de Fuente
  • Da Destino alfa
  • Dc de color de destino

Cuando alfa es un valor [0..1], y color es sustituido una vez por ch annel (a fin de utilizar la fórmula una vez para cada uno de rojo, verde y azul)

Los valores resultantes se especifican como un par en corchetes como sigue.

[<alpha-value>,<color-value>] 

Dónde alpha-value y color-value son fórmulas para generar el Chanel alpha resultante y cada Chanel de color, respectivamente.