J'ai 2 couleurs
#a1a2a4
- noir (
#000000
) - blanc (
#ffffff
)
Maintenant, j'ai besoin de savoir combien d'opacité (en pourcentage) dois-je appliquer à la deuxième couleur (noir) sur un arrière-plan de la troisième couleur (blanc) pour obtenir une couleur "la plus proche" (déterminée par l'œil) de la première couleur ( #a1a2a4
).
Comment dois-je procéder?
color
transparency
Pacerier
la source
la source
gray
ton qui se rapproche le plus de la couleur spécifiée, n'est-ce pas?Réponses:
Ce cas est plus ou moins simple (vous avez affaire au noir et blanc).
Après avoir appliqué la couleur (# a1a2a4), vérifiez les niveaux RVB:
Vous pouvez voir qu'il en a environ 162 (en moyenne), et sachant qu'il peut aller de 0 à 255, il vous suffit de connaître le pourcentage:
162 * 100/255 = ~ 63,5%
Maintenant, comme RVB fonctionne de manière opposée par rapport à CMJN (en termes de mélange de couleurs, c'est-à-dire que le mélange de couleurs signifie blanc et avec le mélange de couleurs CMJN signifie noir), le pourcentage réel dans ce cas est la différence entre 100% et la valeur que nous avons:
100 - 63,5 = 36,5%
Donc si vous appliquez 36% d'opacité, elle aura cette couleur, je viens de la tester.
Bien sûr, dans les cas avec des couleurs plus complexes, cette méthode ne fonctionne pas et je ne sais pas comment obtenir le pourcentage, je ferais les essais et erreurs classiques.
la source
La question, si je comprends bien, est "Comment calculeriez- vous cela par programme?" Il est simple de convertir votre "couleur" cible en une valeur alpha.
Blanc == [1,1,1] ou #ffffff ou 255,255,255, selon votre application. Noir == [0,0,0], etc.
Donc: normalisez la valeur cible (dans ce cas, c'est 0,6314), soustrayez de 1 et appliquez au calque noir comme valeur alpha. Vous pouvez faire cela un canal à la fois, et faire la moyenne des résultats, mais pourquoi s'inquiéter, car votre couleur est indiscernable (à l'œil) d'un gris neutre # a1a1a1. (Les choses deviennent plus complexes s'il y a une teinte visible, car les canaux auront alors des valeurs différentes, mais le même principe s'applique.)
la source
Une variante légèrement plus rapide des essais et erreurs:
Créez votre couleur hexadécimale dans Photoshop dans un document CMJN et examinez les valeurs CMJN. J'obtiens 39/32/31/1.
Créez deux calques, le noir supérieur et le blanc inférieur.
Ouvrez la fenêtre Info. Séparément, ouvrez la fenêtre Calques.
Jouez avec l'opacité du calque noir. Utilisez la pipette sur votre couleur et vérifiez dans la fenêtre d'informations pour voir à quel point vous vous rapprochez. Cela vous fait surtout gagner du temps pour changer l'opacité - aplatir - vérifier la couleur - annuler l'aplatissement.
la source
Compte tenu de vos couleurs de premier plan et d'arrière-plan (valeurs uniformes sur les canaux R, G et B), vous ne pouvez pas obtenir une couleur non uniforme de
#a1a2a4
en modifiant l'opacité car l'opacité affecte tous les canaux à la fois. Cependant, vous pouvez obtenir une couleur "suffisamment proche"#a1a1a1
en définissant l'opacité du noir sur0.37
. Voici l'outil que j'ai utilisé:http://colorizer.org/
#fff
#000
la source
Trouver cette formule est un excellent exercice d'algèbre linéaire. En utilisant RVB et algèbre linéaire, j'ai trouvé cette matrice M. Si vous voulez combiner RGBred = (237,32,36) et RGBblue = (60,84,165) où la couche inférieure est à 100% d'opacité et la couche supérieure à 50% l'opacité multiplie alors Mv où M est la matrice ci-dessous et v = (237,32,36,60,84,165). Nous obtenons Mv = (157,777,71.444,107.444).
La valeur réelle est (159,71,103) donc nous sommes assez proches mais il y a une erreur - probablement soit parce que j'utilisais des valeurs arrondies pour calculer M et / ou parce qu'il n'utilise pas RVB mais une autre échelle pour calculer la transparence aplanissement. Je pourrais probablement obtenir une matrice plus précise en utilisant une approche de type moindres carrés mais j'étais trop paresseux.
La matrice MI obtenue est
la source