大家好。
我正在进行一个项目,我想将argb值转换为描述性文本颜色并显示给用户。
我正在使用调色板api从图像中提取argb颜色,我想将其转换为描述性文本颜色,但我不知道如何做到这一点。有人能帮我吗。我尝试给出预定义的值,但没有得到预期的结果。我想知道是否有任何api或库可以做到这一点,或者有任何替代方法。
Palette palette = Palette.from(bitmap).generate();
binding.colour.setText(argbToTextColor(palette.getDominantColor(0)));
public String argbToTextColor(int argb) {
int rgb = argb & 0x00FFFFFF;
int red = (rgb >> 16) & 0xFF;
int green = (rgb >> 8) & 0xFF;
int blue = rgb & 0xFF;
if (red < 50 && green < 50 && blue < 50) {
return "Black";
} else if (red > 200 && green > 200 && blue > 200) {
return "White";
} else if (red > green && red > blue) {
return "Red";
} else if (green > red && green > blue) {
return "Green";
} else if (blue > red && blue > green) {
return "Blue";
} else if (red > 200 && green > 200) {
return "Yellow";
} else if (red > 200 && blue > 200) {
return "Magenta";
} else if (green > 200 && blue > 200) {
return "Cyan";
} else if (red > 150 && green > 100 && blue < 50) {
return "Orange";
} else if (red < 100 && green < 100 && blue < 100) {
return "Gray";
} else if (red > 150 && green > 50 && blue > 150) {
return "Purple";
} else if (red < 100 && green < 100 && blue > 150) {
return "Pink";
} else if (red > 100 && green > 50 && blue < 50) {
return "Brown";
} else {
return "Unknown Color";
}
}