141 votes

Que signifie PorterDuff.Mode dans les graphiques Android? Que fait-il?

Je voudrais savoir ce que PorterDuff.Mode signifie dans les graphiques Android . Je sais que c'est un mode de transfert. Je sais aussi qu'il a des attributs tels que DST_IN, Multiply etc. Pourtant, je ne peux pas comprendre l'essentiel de PorterDuff.Mode. Quelqu'un peut-il expliquer cela?

Merci.

318voto

Phasmal Points 73

Il est tout à fait un bon article en le couvrant avec des illustrations au http://ssp.impulsetrain.com/porterduff.html. L'article décrit PorterDuff comme un moyen de combiner les images comme si elles étaient "de forme irrégulière morceaux de carton" superposés les uns sur les autres, ainsi que d'un système de fusion pour les parties qui se recouvrent.

La valeur par défaut d'Android manière de composer des images est PorterDuff.Mode.SRC_OVER, ce qui équivaut à tracer la source de l'image/de la couleur sur l'image de la cible. En d'autres termes, il fait ce que vous attendez et attire l'image source (celui que vous êtes le dessin) sur le dessus de l'image de destination (la toile) avec l'image de destination montrant à travers le degré défini par la source de l'image de l'alpha.

Vous pouvez utiliser la touche ci-dessous pour comprendre l'algèbre que l'Android docs utiliser pour décrire les autres modes (voir l'article pour plus de description avec des termes similaires).

  • Sa Source alpha
  • Sc la couleur d'une Source
  • Da Destination alpha
  • Dc couleur de Destination

Où alpha est une valeur en [0..1], et la couleur est substitué une fois par canal (il faut donc utiliser la formule une fois pour chacune des couleurs rouge, vert et bleu)

Les valeurs obtenues sont spécifiés comme une paire de crochets comme suit.

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

alpha-value et color-value sont des formules pour la génération de l'résultant alpha chanel et chaque couleur chanel respectivement.

38voto

kcoppock Points 57219

Voici un article avec un bref aperçu des différents modes et de ce qu’ils représentent. Ce n'est pas spécifique à Android, mais le concept est le même. Il ne fait pas non plus référence à certains modes tels que MULTIPLY , qui est davantage un mode de fusion, mais il existe une réponse ici avec un exemple d'utilisation.

4voto

yoah Points 3767

Il définit comment composer des images en fonction de la valeur alpha. Voir plus ici http://en.wikipedia.org/wiki/Alpha_compositing

0voto

jonney Points 3115

de ma récente découverte. Si vous avez des images qui se chevauchent et que vous essayez de changer le filtre couleur de l'une d'entre elles, cela affectera l'autre image qui la chevauche!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X