我们正在构建一个体育应用程序,并希望在应用程序的各个部分中加入团队色彩。
现在,每个团队可以使用几种不同的颜色表示。
我想做的是进行检查,以验证这两种团队颜色是否在彼此的一定范围内,这样我就不会显示两种相似的颜色。
因此,如果小组1的主要小组颜色的值是rgb(255,0,0)(或#FF0000),而小组2的主要颜色是相似的,例如rgb(250,0,0),则我们将选择其他值其中一支球队的颜色。
如果可能,我可以采取哪种方法进行检查?
谢谢
这是理论上的解释
和C中的算法:
typedef struct { unsigned char r, g, b; } RGB; double ColourDistance(RGB e1, RGB e2) { long rmean = ( (long)e1.r + (long)e2.r ) / 2; long r = (long)e1.r - (long)e2.r; long g = (long)e1.g - (long)e2.g; long b = (long)e1.b - (long)e2.b; return sqrt((((512+rmean)*r*r)>>8) + 4*g*g + (((767-rmean)*b*b)>>8)); }