2014-03-27 9 views
5

Kennt jemand eine Möglichkeit, zwei Hex-Farbwerte zu nehmen und eine Art Index zurückzugeben, um zu sagen, wie ähnlich die Farben sind? beispielsweise könnten zwei Gelbschattierungen einen höheren Index ergeben, d. h. sie sind ähnlicher als beispielsweise ein Grau und ein Gelb?Erkennen ähnlicher Farben aus Hex-Werten

(Im mit Javascript, aber so etwas würde vermuten, eine sprachunabhängige Formel/Algorithmus sein)

+0

möglich Duplikat von [ Algorithmus zur Überprüfung der Ähnlichkeit von Farben basierend auf RGB-Werten (oder vielleicht HSV)] (http://stackoverflow.com/questions/5392061/algorithm-to-check-similarity-of-colors-based-on-rgb-values-or -maybe-hsv) – Chris

+0

sieht vielversprechend aus, danke chris – alfonsob

Antwort

12

hier ein Algorithmus sein könnte, mit zu beginnen:

function hexColorDelta(hex1, hex2) { 
    // get red/green/blue int values of hex1 
    var r1 = parseInt(hex1.substring(0, 2), 16); 
    var g1 = parseInt(hex1.substring(2, 4), 16); 
    var b1 = parseInt(hex1.substring(4, 6), 16); 
    // get red/green/blue int values of hex2 
    var r2 = parseInt(hex2.substring(0, 2), 16); 
    var g2 = parseInt(hex2.substring(2, 4), 16); 
    var b2 = parseInt(hex2.substring(4, 6), 16); 
    // calculate differences between reds, greens and blues 
    var r = 255 - Math.abs(r1 - r2); 
    var g = 255 - Math.abs(g1 - g2); 
    var b = 255 - Math.abs(b1 - b2); 
    // limit differences between 0 and 1 
    r /= 255; 
    g /= 255; 
    b /= 255; 
    // 0 means opposit colors, 1 means same colors 
    return (r + g + b)/3; 
} 

> FIDDLE

+0

das funktioniert für mich @spOOm, danke – alfonsob

+0

Perfekt, genau was ich brauchte! Vielen Dank :) – Kehza

Verwandte Themen