十六进制颜色到 HSV 的转换 Java

HexColor to HSV conversion Java

我正在寻找一种方法将 HexColors 转换为 Java 中的 HSV/HSB 模型,以便我可以将颜色分成 X 颜色系列,其中 X 是(红色、绿色等)。我遇到了色轮模型,其中红色跨越色相 60 度(-30 度到 +30 度)。所以我想将 Hex 颜色转换为 HSB/HSV 模型并找到位于相应范围内的 Hue 以进行分叉。

我尝试使用 java.awt RGBoHSB 方法来获取带 HSB 的浮点数组。从该方法返回的 Hue 值对我来说似乎不在 degrees/radians 中,因此我无法分叉。此外,我想避免使用 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方法