如何获得一种颜色的rgb值'It’它接近另一种颜色

how to get rgb values for a color that's close to another color?

本文关键字:颜色 It 另一种 接近 rgb 何获得 一种      更新时间:2023-10-12

如果我有RGB颜色。如何创建一个javascript函数,当另一个RGB值接近初始RGB时返回true,否则返回false?

我用过这个,它对我来说效果很好:

// 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;
}

根据您的特定问题,颜色距离的含义可能会有所不同,例如,在您的情况下,您可能需要将&&更改为||

这完全取决于什么对你来说意味着"亲近"。您可以制作如下功能:

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;
}

它将匹配非常接近的颜色(基于简单的rgb矢量距离),但仍然存在必须通过实验选择的阈值参数。