Java swing。如何将颜色强度从黑色变为白色?
我没有看到如何改变只从黑色到白色的颜色。灰度。Java swing。如何将颜色强度从黑色变为白色?
我的例子。我有价值观是从0到100
他们的表现是这样的:
0 - 黑色
100 - 白
我绘制JComponent,每当我不得不改变我的颜色要叫
g.setColor(Color);
但如何告诉它只能从黑色改变颜色为白色,这取决于我的电话号码(的数字越大,颜色是白衣ER)? 如何操作RGB?
当然,除了通过逐渐变浅的灰色之外,本质上没有从黑色到白色的颜色变化。
所以,仅仅用RGB的值相等,治疗0 - 100 255
例如一个比例,50%是128,128,128 RGB(尽管这取决于四舍五入你可能会对127,127,127到达)。
从一个百分比值将0-255的表达式是:
rgb=(pct*255)/100;
色彩API具有HSB值,你可能会发现更容易使用。您也可以使用HSL Colors。当您以黑色或白色开始时,请查看“亮度”选项卡。
具体询问“如何操作RGB?”。 – 2010-11-08 19:28:10
@pouncep:HSB和HSL是有用的替代品。例如,在HSB中,设置h = 0,s = 0和b = 0..255会产生256个等距灰度。另请参阅http://download.oracle.com/javase/tutorialJWS/uiswing/components/ex6/ColorChooserDemo.jnlp – trashgod 2010-11-08 19:48:23
基本问题与灰度有关。很多时候人们不知道替代品。我尝试提供不同的方法,然后人们可以选择他们理解的方法。对于许多人来说,改变亮度(在HSB中)或亮度(在HSL中)的“概念”更有意义,然后改变所有三个RGB值。 – camickr 2010-11-08 20:08:59
只要rgb中的值相等,就表示灰色。
所以
g.setColor(new Color(0, 0, 0);
是白色的。
g.setColor(new Color(255,255,255);
是黑色
g.setColor(new Color(128,128,128);
是相等的共混物的白色和黑色。
-1,软件猴的建议副本。 – camickr 2010-11-08 19:14:02
谢谢,这没关系! – vale4674 2010-11-09 16:53:14