我有一个颜色的int表示。我想要做的是如果这个颜色太黑或太白,我想将背景设置为默认颜色。我想找到颜色是否太接近黑色或白色使用RGB或HSV表示是好的。由于太黑或太白,我的意思是说我可以根据比例设置一些阈值。假设有一个从0到1的刻度,其中0是黑色,1是白色,我想拒绝低于0.2和高于0.8的所有颜色。我尝试了下面的代码,但它实际上不起作用。这不起作用,因为我看到一些其他颜色也被拒绝,不是黑色或白色的阴影。请帮忙。
public static boolean isWhitish(int color) {
float[] hsv = new float[3];
Color.colorToHSV(color, hsv);
return hsv[2] > 0.8;
}
答案 0 :(得分:0)
首先,您需要获得颜色的HEX CODE
,然后您可以使用this solution来提取该颜色的亮度。
然后,您可以使用(brightness < .2 || brightness > .8)
来决定下一步该做什么。
希望这会有所帮助,祝你好运: - )