gpt4 book ai didi

java - 我需要知道java如何实现函数Color.RGBtoHSB(r, g, b, hsb)的详细信息。他们是否标准化 r、g、b

转载 作者:行者123 更新时间:2023-12-01 19:01:13 25 4
gpt4 key购买 nike

我不知道 Color.RGBtoHSB(r, g, b, hsb) 函数是否在将 r,g,b 转换为 H,S,B 之前对其进行标准化,或者我可以在哪里获得其内置函数的 java 实现.

最佳答案

这是直接来自 Color 类源代码的实现:

public static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals) {
float hue, saturation, brightness;
if (hsbvals == null) {
hsbvals = new float[3];
}
int cmax = (r > g) ? r : g;
if (b > cmax) cmax = b;
int cmin = (r < g) ? r : g;
if (b < cmin) cmin = b;

brightness = ((float) cmax) / 255.0f;
if (cmax != 0)
saturation = ((float) (cmax - cmin)) / ((float) cmax);
else
saturation = 0;
if (saturation == 0)
hue = 0;
else {
float redc = ((float) (cmax - r)) / ((float) (cmax - cmin));
float greenc = ((float) (cmax - g)) / ((float) (cmax - cmin));
float bluec = ((float) (cmax - b)) / ((float) (cmax - cmin));
if (r == cmax)
hue = bluec - greenc;
else if (g == cmax)
hue = 2.0f + redc - bluec;
else
hue = 4.0f + greenc - redc;
hue = hue / 6.0f;
if (hue < 0)
hue = hue + 1.0f;
}
hsbvals[0] = hue;
hsbvals[1] = saturation;
hsbvals[2] = brightness;
return hsbvals;
}

关于java - 我需要知道java如何实现函数Color.RGBtoHSB(r, g, b, hsb)的详细信息。他们是否标准化 r、g、b,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216583/

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