INNER CODE UNIT · JavaScript

color_distance

increpare/flickgame · flickgame_base.js:55

function color_distance(color1, color2) {
    var c1 = hexToRgb(color1);
    var c2 = hexToRgb(color2);
    var lab1 = rgbToLab(c1.r, c1.g, c1.b);
    var lab2 = rgbToLab(c2.r, c2.g, c2.b);
    var dL = lab1.L - lab2.L, dA = lab1.a - lab2.a, dB = lab1.b - lab2.b;
    return Math.sqrt(dL * dL + dA * dA + dB * dB);
}

function nearest_color_index_in_palette(palette, target_color) {
    var nearest_idx = 0;
    var nearest_dist = color_distance(target_color, palette[0]);
    for (var i = 1; i < palette.length; i++) {
        var dist = color_distance(target_color, palette[i]);
        if (dist < nearest_dist) { nearest_dist = dist; nearest_idx = i; }
    }
    return nearest_idx;
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…