我必须找到最近的颜色。例如,我有两种颜色colorA1,colorA2几乎是相同的颜色。而且我还有其他颜色的颜色B1。我需要这样一个方法:Color getNearestColor(colorA1,colorA2,colorB1)。这个方法应该给我colorB2,它是通过使用colorA1和colorA2的差异计算的,然后使用它们的距离它应该给我color23,它具有与colorA1和colorA2相同的距离。你能提出一些如何实现它的想法吗?
要查找最接近的颜色,您需要定义“near”,因此需要使用指标。
在维基百科中,您将找到color differences的不同指标。
我个人会使用2 * R * R + 4 * G * G + 3 * B * B. (不需要平方根,你只需比较相同的指标)。易于计算,你可以只使用整数(如果你使用32位整数,你将没有溢出)。
然后找出哪种颜色与目标颜色之间的差异最小。
其他方法更精确,但在这种情况下“RGB”是不够的。您需要知道正在使用哪个颜色空间(可能您使用的是sRGB)。