Java swing。如何将颜色强度从黑色更改为白色?

Java swing。如何将颜色强度从黑色更改为白色?,java,swing,colors,rgb,grayscale,Java,Swing,Colors,Rgb,Grayscale,我不知道如何将颜色从黑色变为白色。灰度 我的例子。我有从0到100的值 他们的表述如下: 0-黑色 100-白色 我正在画JComponent,每当我需要改变颜色时,我都要打电话给他 g.setColor(Color); 但是,根据我的数字(数字越大,颜色越白),如何告诉它只从黑色变为白色? 如何在RGB上操作?当然,除了逐渐变浅的灰色,颜色本身不会从黑色变为白色 所以,只需使用相等的RGB值,将0-100视为255的百分比 例如,50%是128128的RGB(尽管根据四舍五入,可能会达到12

我不知道如何将颜色从黑色变为白色。灰度

我的例子。我有从0到100的值

他们的表述如下:

0-黑色

100-白色

我正在画JComponent,每当我需要改变颜色时,我都要打电话给他

g.setColor(Color);
但是,根据我的数字(数字越大,颜色越白),如何告诉它只从黑色变为白色?
如何在RGB上操作?

当然,除了逐渐变浅的灰色,颜色本身不会从黑色变为白色

所以,只需使用相等的RGB值,将0-100视为255的百分比

例如,50%是128128的RGB(尽管根据四舍五入,可能会达到127127)

从百分比值变为0-255的表达式为:

rgb=(pct*255)/100;

颜色API具有HSB值,您可能会发现它更易于使用


您也可以使用。从黑色或白色开始时,请查看“亮度”选项卡。

只要rgb中的值相等,就有灰色

所以

它是白色的

g.setColor(new Color(255,255,255);
它是黑色的

g.setColor(new Color(128,128,128);

< P>是白色和黑色的均等混合。

这个问题专门问“如何操纵RGB?”。例如,在HSB中,设置h=0、s=0和b=0..255将生成256个等距灰度。另见基本问题是关于灰度的。很多时候,人们不知道其他选择。我尝试提供不同的方法,然后人们可以选择他们理解的方法。对于许多人来说,改变亮度(HSB)或亮度(HSL)的“概念”比改变所有三个RGB值更有意义。+1:我同意camkickr,并且可以立即看到一些地方,这些地方可以帮助我处理一些代码。我承认我被锁在RGB的脑海里这么久了,我不经常考虑HSB和HSL的替代品。事实上,我只是写了一些颜色变化的代码,我打赌HSB或HSL会工作得更好。现在添加一个待办事项来研究这个问题。
g.setColor(new Color(128,128,128);