Java:使用颜色操作(加,减)? – 恒定类中的颜色
我正在使用java.awt.Color
实例。 有没有办法对颜色进行算术运算? 像rgb(20, 20, 20) + rgb(10, 200, 170) = rgb(30, 220, 190)
?
我正在尝试做的事情:我有一个带有桌子的gui,如果用户点击一个单元格,其他单元格会根据它们与所选单元格的关系改变颜色。 我正在寻找一种方法来避免硬编码基色是什么,以及它们改变的颜色值。
因此,所选单元格可能是rgb(255, 0, 0)
,其他所有内容可能基于它们的值在rgb(0, 0, 0)
和rgb(0, 255, 0)
。 我在想…枚举?
import java.awt.Color; public enum ColorConstant { SELECTED (new rgb(255, 0, 0), "Red"), MAX_DISTANCE (new rgb(0, 255, 0), "Green") private Color shade; private ??? whichColorToModify; }
有Color.brighter和Color.darker方法。
除此之外,我通常会为此目的编写一个小实用程序方法,例如:
private static Color brightness(Color c, double scale) { int r = Math.min(255, (int) (c.getRed() * scale)); int g = Math.min(255, (int) (c.getGreen() * scale)); int b = Math.min(255, (int) (c.getBlue() * scale)); return new Color(r,g,b); }
HSLColor可能就是你想要的。 它允许您轻松调整颜色的色调/色调。