我正在寻找一种在Java中将HexColors转换为HSV/HSB模型的方法,这样我就可以将颜色分成X颜色族,其中X是(红色、绿色等(。我遇到了"色轮"模型,其中"红色"的色调范围为60度(-30度到+30度(。因此,我想将Hex颜色转换为HSB/HSV模型,并找到位于相应分叉范围内的色调。
我尝试使用java.awtRGBoHSB方法来获得带有HSB的浮点数组。从该方法返回的色调值对我来说似乎不是以度/弧度为单位的,因此我无法分叉。此外,我想避免使用java.awt,所以有人可以建议一些替代方法,将十六进制颜色转换为HSV格式,这将解决我的问题,我可以根据色轮将颜色分成类。
对于十六进制到RGB的转换,我使用
public Color hex2Rgb(String colorStr) {
return new Color(
Integer.valueOf( colorStr.substring( 1, 3 ), 16 ),
Integer.valueOf( colorStr.substring( 3, 5 ), 16 ),
Integer.valueOf( colorStr.substring( 5, 7 ), 16 ) );
}
为了将RGB转换为所需格式的HSV,我遵循了这篇文章https://www.geeksforgeeks.org/program-change-rgb-color-model-hsv-color-model/这有助于我在色轮理论的基础上分离出色族(http://warrenmars.com/visual_art/theory/colour_wheel/evolution/evolution.htm)
PS:这没有使用AWT方法