2010-11-08 153 views
2

我没有看到如何改变只从黑色到白色的颜色。灰度。Java swing。如何将颜色强度从黑色变为白色?

我的例子。我有价值观是从0到100

他们的表现是这样的:

0 - 黑色

100 - 白

我绘制JComponent,每当我不得不改变我的颜色要叫

g.setColor(Color); 

但如何告诉它只能从黑色改变颜色为白色,这取决于我的电话号码(的数字越大,颜色是白衣ER)? 如何操作RGB?

回答

3

当然,除了通过逐渐变浅的灰色之外,本质上没有从黑色到白色的颜色变化。

所以,仅仅用RGB的值相等,治疗0 - 100 255

例如一个比例,50%是128,128,128 RGB(尽管这取决于四舍五入你可能会对127,127,127到达)。

从一个百分比值将0-255的表达式是:

rgb=(pct*255)/100; 
+0

谢谢,这没关系! – vale4674 2010-11-09 16:53:14

4

色彩API具有HSB值,你可能会发现更容易使用。您也可以使用HSL Colors。当您以黑色或白色开始时,请查看“亮度”选项卡。

+0

具体询问“如何操作RGB?”。 – 2010-11-08 19:28:10

+0

@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

+1

基本问题与灰度有关。很多时候人们不知道替代品。我尝试提供不同的方法,然后人们可以选择他们理解的方法。对于许多人来说,改变亮度(在HSB中)或亮度(在HSL中)的“概念”更有意义,然后改变所有三个RGB值。 – camickr 2010-11-08 20:08:59

-1

只要rgb中的值相等,就表示灰色。

所以

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

是白色的。

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

是黑色

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

是相等的共混物的白色和黑色。

+0

-1,软件猴的建议副本。 – camickr 2010-11-08 19:14:02

相关问题