2010-09-08 3 views
4

Si j'ai une couleur de couche inférieure et une valeur alpha (C & A) et que vous voulez créer un C & A personnalisé à l'écran, quelle est la fonction pour déterminer ce que C & A doit être ajouté en tant que couche sur le dessus de la couche inférieure?donné une couleur et alpha, quelle couleur et alpha à ajouter pour créer une couleur désirée?

modifier:

Je veux dupliquer en mode "normal" de Photoshop pour que je correspondre à la conception graphique d'un designer.

Par exemple:

BASE LAYER rgb: 255-0-0 alpha: 51/256 

+ 

NEW LAYER rgb: ??? alpha: ??? 

= 

DESIRED LAYER rgb: 114-0-141 alpha: 92/256 

P.S .: la réponse est 0-0-255 alpha: 51/256 ... mais je sais que cela parce que je l'ai écrit le problème et vérifié dans Photoshop.

Répondre

2

Cela dépend du Blend Mode utilisé entre les deux couches (inférieure et supérieure). La page wiki liste certaines formules qui pourraient vous intéresser.

Le manuel de référence PDF a une belle explication aussi:

α r C r = [(1 - α s) * α b * C b ] + [(1 - α b) * α s * C s] + α b * α s * B (C b, C s)

C = color, α = alpha value 

et les indices

r = résultat, b = contexte, s = Source

En outre,

B (C b, C s) = fonction de mode de mélange

Dans cas du mode de mélange normal: B (C b, C s) = C s

L'alpha mélangé est donnée par:

α r = Union (α b, α de) et

Union (s b, s) = b + s - (b * s)

+0

thx pour ce lien. J'ai édité l'OP. J'essaie de faire correspondre le mode "normal" de photoshop (hmm .. maintenant pour comprendre ce que c'est) – jedierikb

+0

Ce sera le mode de mélange normal (le mode de mélange le plus commun). Le mode de fusion normal ne se mélange pas et les pixels 100% opaques sur la couche supérieure bloquent totalement les pixels des couches inférieures. Un pixel transparent à 50% vous permet de voir une vue partiellement transparente des pixels ci-dessous. C'est le mode par défaut. – dirkgently

+0

Hélas, la description d'une phrase du mode normal sur wikipedia n'est pas trop utile en ce qui concerne la manipulation alpha ... désolé d'être dense. – jedierikb

0

l'encre que le mode "normal" de photoshop implémente Porter Duff "over" compositing. Ensuite, la page wikipedia est utile et répertorie les formules, en particulier pour la gestion alpha.

Notez que toutes les solutions ne sont pas possibles. C'est-à-dire que l'alpha de la couche désirée doit être plus grand que l'alpha de la couche de base.

La solution pourrait se présenter comme suit:

  • déterminer l'alpha de la nouvelle couche comme (alpha_desired - alpha_base)/(1 - alpha_base). Notez que (alpha_desired - alpha_base) doit être positif.
  • déterminer la couleur de la nouvelle couche, qui peut être en dehors de la gamme disponible - alors l'opération est impossible.
Questions connexes