Comment obtenir des valeurs de rgb pour une couleur proche d'une autre couleur?

Si j'ai une couleur en RVB. Comment puis-je créer une fonction javascript qui renvoie true lorsqu'une autre valeur RVB est proche du RVB initial et false sinon?

J'ai utilisé cela et cela fonctionne très bien pour moi:

// assuming that color1 and color2 are objects with r, g and b properties // and tolerance is the "distance" of colors in range 0-255 function isNeighborColor(color1, color2, tolerance) { if(tolerance == undefined) { tolerance = 32; } return Math.abs(color1.r - color2.r) <= tolerance && Math.abs(color1.g - color2.g) <= tolerance && Math.abs(color1.b - color2.b) <= tolerance; } 

Et en fonction de votre problème particulier, la signification de la distance de couleur peut être différente, par exemple peut-être dans votre cas, vous devriez changer && à ||

Tout dépend de ce qui signifie «près» de vous. Vous pouvez faire fonctionner comme:

 var color1 = { "r": 255, "g": 255, "b": 255 } var color2 = { "r": 250, "g": 252, "b": 252 } function isClose(color1, color2) { var threshold = 30; var distance = Math.abs(color1.r - color2.r) + Math.abs(color1.g - color2.g) + Math.abs(color1.b - color2.b); if (distance < threshold) return true; return false; } 

Qui combinerait des couleurs très proches (basées sur la distance simple du vecteur rgb), mais il existe encore un paramètre de seuil qui doit être choisi expérimentalement.