Test.java
- 📅 2023-06-13T19:28:11.324Z
- 👁️ 148 katselukertaa
- 🔓 Julkinen
import java.awt.Color;
class Driver {
public static void main(String[] args) {
final var utils = new ColorUtils(Color.decode("#00ff00"));
System.err.println(java.util.Arrays.toString(utils.colors));
}
}
class ColorUtils {
private Color baseColor;
Color[] colors;
public ColorUtils(Color baseColor) {
this.baseColor = baseColor;
this.colors = generateTones(this.baseColor, 3);
}
public Color backgroundColor() {
// return baseColor.darker();
return new Color(baseColor.getRed(), baseColor.getGreen(), baseColor.getBlue(), 255/4).darker();
}
public Color foregroundColor() {
return baseColor.brighter();
}
public Color textColor() {
int red = 255 - baseColor.getRed();
int green = 255 - baseColor.getGreen();
int blue = 255 - baseColor.getBlue();
return new Color(red, green, blue);
}
private Color[] generateTones(Color baseColor, int numberOfTones) {
Color[] tones = new Color[numberOfTones];
float[] baseHSB = Color.RGBtoHSB(baseColor.getRed(), baseColor.getGreen(), baseColor.getBlue(), null);
float baseBrightness = baseHSB[2];
float brightnessStep = baseBrightness / numberOfTones;
for (int i = 0; i < numberOfTones; i++) {
float brightness = baseBrightness - (i * brightnessStep);
tones[i] = Color.getHSBColor(baseHSB[0], baseHSB[1], brightness);
}
return tones;
}
public Color hoveredColor() {
return textColor().darker().darker().darker().darker();
}
public Color enabledColor() {
return this.colors[0];
}
public Color disabledColor() {
return this.colors[1];
}
public Color changedColor() {
return this.colors[2];
}
public Color getBaseColor() {
return baseColor;
}
}