Question

dans Photoshop, vous pouvez définir le mode de mélange d'un calque pour être "Hue". Si cette couche est, par exemple, remplie de bleu, il semble prendre le calque ci-dessous et le rend tout bleu où une couleur non blanches existe.

Je me demande ce que ça fait. Si j'ai une couche d'arrière-plan avec un pixel AarrgGBBB et la couche de dessus est définie sur le mode de mélange "HUE" et il y a un pixel AarrgGBBB sur cette couche, comment ces deux valeurs sont combinées pour donner le résultat que nous voyons?

Il ne suffit pas de déposer le RRGGBB à partir du calque ci-dessous. Si c'était le cas, il était en couleur blanche et noire aussi. Il ne permettrait pas non plus de variations de couleur.

Si un pixel d'arrière-plan est 0xFF00FF00 et le pixel de la couche de teinte correspondant est 0xFF0000FF, alors je suppose que le résultat final sera simplement 0xFF0000FF, car le bleu FF remplace le vert FF. Mais, si le pixel de fond est 0x55112233 et que le pixel de la couche de teinte est 0xFF0000FF, comment est-il proposé avec la nuance de bleu qu'elle propose?

La raison pour laquelle je demande est que je voudrais prendre diverses images et changer la teinte de l'image programmatique dans mon application. Plutôt que de stocker 8 versions différentes de la même image avec des couleurs différentes, je voudrais stocker une image et la colorer au besoin.

Était-ce utile?

La solution

J'ai trouvé un algorithme pour convertir RVB en HSV ici: http://www.cs.ridit.edu/~ncs/color/t_convert.html

Bien sûr, au bas de cette page, il mentionne que l'objet couleur Java a déjà des méthodes de conversion entre RVB et HSV, donc je suis d'utiliser cela.

Autres conseils

Je suis en train de rechercher un moyen de reproduire ce mode de mélange dans JavaScript / Canvas, mais je n'ai proposé que le mode de filtre / mélange de coloris ». (Exemples ci-dessous)

colorize algorithme:

  1. Convertissez les couleurs de RVB en HSL;
  2. Changez la valeur de la teinte à l'autre (dans mon cas 172⁰ ou 0.477);
  3. revert la mise à jour HSL à RVB

    Remarque: Ceci est ok sur le bureau mais il est sensiblement lent sur un smartphone, j'ai trouvé.

    Vous pouvez voir la différence en comparant ces trois images. Original:

    image d'origine

    Coloriser:

    résultat avec mon algorithme

    Algorithme "Mélange Hue" de Fireworks (que je pense est la même chose que Photoshop):

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top