gpt4 book ai didi

java - JColorChooser 将色调、饱和度和值表示为整数。如何从 Color 对象获取这些值?

转载 作者:行者123 更新时间:2023-12-01 18:44:56 26 4
gpt4 key购买 nike

我在 HSV 颜色空间中使用 Java Swing JColorChooser。该小部件使用微调器来调整颜色。色调为 0-360,饱和度为 0-100,明度为 0-100。我只能获取组件值的浮点值。我想在用户选择颜色后在标签中显示组件值,但我不知道如何获取与 JColorChooser 中相同的值。我的代码:

private String getColorString(Color color)
{
float[] comp = color.getColorComponents(chooser.getColorModel().getColorSpace(),
null);

return comp[0] + ", " + comp[1] + ", " + comp[2];
}

当我的颜色选择器显示 HSV 为 180,50,50 时,我的组件值为 0.24938,0.49749,0.49793

我意识到我正在从颜色请求 float 组,但没有诸如 getHue() 之类的方法。

最佳答案

要从 jColorChooser 获取 HSB(与 HSV 相同),您可以按以下方式使用 Color.RGBtoHSB()。

Color c = jColorChooser1.getColor();
float[] comp = new float[3];
Color.RGBtoHSB(c.getRed(), c.getGreen(), c.getBlue(), comp);
comp[0]*= 360;
comp[1]*= 100;
comp[2]*= 100;
return comp[0]+", "+comp[1]+", "+comp[2];

或者在你的方法中你可以像这样实现它

private String getColorString(Color color)
{
float[] comp = new float[3];
Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), comp);
comp[0]*= 360;
comp[1]*= 100;
comp[2]*= 100;
return comp[0]+", "+comp[1]+", "+comp[2];
}

我知道我们给出的值和返回的值存在微小差异,但您不能比这个更准确!

关于java - JColorChooser 将色调、饱和度和值表示为整数。如何从 Color 对象获取这些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18187593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com