Class ColorUtil

java.lang.Object
de.pirckheimer_gymnasium.engine_pi.util.ColorUtil

public final class ColorUtil extends Object
Statische Klasse, die Hilfsmethoden zur Farbberechnung und -manipulation bereitstellt.
  • Method Summary

    Modifier and Type
    Method
    Description
    static Color
    Berechnet die Durchschnittsfarbe eines Bildes.
    static Color
    chanceHSB(Color color, de.pirckheimer_gymnasium.engine_pi.util.HSBColorVariant variant)
    Ändert die HSB-Werte (Farbton (Hue), Sättigung (Saturation), Helligkeit (Brightness)) einer gegebenen Farbe durch einen Lambda-Funktion.
    static Color
    changeAlpha(Color color, int alpha)
    Gibt eine Farbe mit geändertem Alphakanal zurück.
    static Color
    changeBrightness(Color color, double deltaBrightness)
    Ändert die Helligkeit einer gegebenen Farbe um einen bestimmten Betrag.
    static Color
    changeSaturation(Color color, double deltaSaturation)
    Ändert die Sättigung einer gegebenen Farbe um einen bestimmten Wert.
    static Color
    Konvertiert eine Farbe in hexadezimaler Notation in die entsprechende Instanz der Klasse Color.
    static Color[]
    decode(String[] hex)
    Dekodiert eine Feld / Array bestehend aus hexadezimalen Repräsentationen von Farben in Zeichenkettenform in ein Feld aus Objekten der Klasse Color.
    static Color
    decode(String hex, boolean solid)
    Konvertiert eine Farbe in hexadezimaler Notation in die entsprechende Instanz der Klasse Color.
    static String
    encode(Color color)
    Kodiert die angegebene Farbe in eine hexadezimale Repräsenation.
    static int
    ensureColorValueRange(float value)
    Stellt sicher, dass der angegebene Wert innerhalb des akzeptierten Bereichs für Farbwerte (0-255) liegt.
    static int
    Stellt sicher, dass der angegebene Wert innerhalb des akzeptierten Bereichs für Farbwerte (0-255) liegt.
    static Color
    Berechnet die Komplementärfarbe.
    static Color
    getTransparentVariant(Color color, int newAlpha)
     
    static Color
    interpolate(Color color1, Color color2, double factor)
    Mischt eine neue Farbe aus zwei gegebenen Farben, wobei das Mischverhältnis angegeben werden kann.
    static boolean
    Überprüft, ob die gegebene Zeichenketten eine Farbe in hexadezimaler Notation (z.
    static Color
    Premultiplies the alpha on the given color.
    static Color
    setBrightness(Color color, double brightness)
    Setzt die Helligkeit einer gegebenen Farbe auf den angegebenen Wert.
    static Color
    setSaturation(Color color, double saturation)
    Setzt die Sättigung einer gegebenen Farbe auf den angegebenen Wert.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • encode

      public static String encode(Color color)
      Kodiert die angegebene Farbe in eine hexadezimale Repräsenation. Das Ausgabeformat ist wie folgt:
      • #RRGGBB - Für Farben ohne Alpha-Kanal bzw. ohne zusätzliche Transparenzinformationen.
      • #RRGGBBAA - Für Farben mit Alpha-Kanal bzw. mit zusätzlichen Transparenzinformationen.

      Beispiele:
      Color.RED = "#ff0000"
      new Color(255, 0, 0, 200) = "#ff0000c8"

      Parameters:
      color - Die Farbe, die kodiert werden soll.
      Returns:
      Eine hexadezimale Repräsenation als Zeichenkette.
      See Also:
    • decode

      public static Color decode(String hex)
      Konvertiert eine Farbe in hexadezimaler Notation in die entsprechende Instanz der Klasse Color.

      Hinweis: Die Methode gibt null zurück, falls die Eingabe nicht korrekt ist.

      Mögliche Eingabeformate sind:
      • #RRGGBB - Für Farben ohne Alpha-Kanal bzw. ohne zusätzliche Transparenzinformationen.
      • #RRGGBBAA - Für Farben mit Alpha-Kanal bzw. mit zusätzlichen Transparenzinformationen.

      Beispiele:
      "#ff0000" = Color.RED
      "#ff0000c8" = new Color(255, 0, 0, 200)

      Parameters:
      hex - Die Farbe in einer hexadezimalen Repräsentation.
      Returns:
      Die dekodierte Farbe.
      See Also:
    • decode

      public static Color decode(String hex, boolean solid)
      Konvertiert eine Farbe in hexadezimaler Notation in die entsprechende Instanz der Klasse Color.
      Parameters:
      hex - Ein Farbe in hexadezimaler Notation.
      solid - Bedeutet, dass der Alphakanal grundsätzlich ein dunklere Version der Grundfarbe erzeugt.
      Returns:
      Die Farbe als Instanz der Klasse Color.
    • decode

      public static Color[] decode(String[] hex)
      Dekodiert eine Feld / Array bestehend aus hexadezimalen Repräsentationen von Farben in Zeichenkettenform in ein Feld aus Objekten der Klasse Color.
      Parameters:
      hex - Eine Feld / Array bestehend aus hexadezimalen Repräsentationen von Farben in Zeichenkettenform.
      Returns:
      Ein Feld bestehend aus Objekten der Klasse Color.
    • isHexColorString

      public static boolean isHexColorString(String color)
      Überprüft, ob die gegebene Zeichenketten eine Farbe in hexadezimaler Notation (z. B. #ff0000) codiert.
      Parameters:
      color - Eine Zeichenkette, die überprüft werden soll.
      Returns:
      Wahr, falls die Zeichenketten eine Farbe in hexadezimaler Notation (z. B. #ff0000) korrekt codiert.
    • ensureColorValueRange

      public static int ensureColorValueRange(float value)
      Stellt sicher, dass der angegebene Wert innerhalb des akzeptierten Bereichs für Farbwerte (0-255) liegt. Kleinere Werte werden zwangsweise auf 0 gesetzt und größere Werte ergeben 255.
      Parameters:
      value - Die Zahl, die überprüft werden soll.
      Returns:
      Ein ganzzahliger Wert, der den Farbwertbeschränkungen entspricht.
    • ensureColorValueRange

      public static int ensureColorValueRange(int value)
      Stellt sicher, dass der angegebene Wert innerhalb des akzeptierten Bereichs für Farbwerte (0-255) liegt. Kleinere Werte werden zwangsweise auf 0 gesetzt und größere Werte ergeben 255.
      Parameters:
      value - Die Zahl, die überprüft werden soll.
      Returns:
      Ein ganzzahliger Wert, der den Farbwertbeschränkungen entspricht.
    • premultiply

      public static Color premultiply(Color color)
      Premultiplies the alpha on the given color.
      Parameters:
      color - The color to premultiply
      Returns:
      The color given, with alpha replaced with a black background.
    • interpolate

      public static Color interpolate(Color color1, Color color2, double factor)
      Mischt eine neue Farbe aus zwei gegebenen Farben, wobei das Mischverhältnis angegeben werden kann.
      Parameters:
      color1 - Die erste Farbe, mit der gemischt werden soll.
      color2 - Die zweite Farbe, mit der gemischt werden soll.
      factor - Das Mischverhältnis. Ein Wert zwischen 0 und 1. Ist dieser Wert 0, so wird color1 zurückgeben, ist er 1 dann color2.
      Returns:
      Die neue, aus zwei Farben gemischte Farbe.
    • getTransparentVariant

      public static Color getTransparentVariant(Color color, int newAlpha)
    • changeAlpha

      public static Color changeAlpha(Color color, int alpha)
      Gibt eine Farbe mit geändertem Alphakanal zurück.
      Parameters:
      color - Die Farbe, dess Alphakanal geändert werden soll.
      alpha - Der Alphakanal als Ganzzahl von 0 - 255.
      Returns:
      Die Farbe mit geändertem Alphakanal.
    • getComplementary

      public static Color getComplementary(Color color)
      Berechnet die Komplementärfarbe.

      Der Alphakanal der Ausgangsfarbe wird ignoriert.

      Parameters:
      color - Die Ausgangsfarbe, von der die Komplementärfarbe berechnet werden soll.
      Returns:
      Die Komplementärfarbe.
    • calculateAverage

      public static Color calculateAverage(BufferedImage image)
      Berechnet die Durchschnittsfarbe eines Bildes. https://stackoverflow.com/questions/28162488/get-average-color-on-bufferedimage-and-bufferedimage-portion-as-fast-as-possible
      Parameters:
      image - Das Bild von dem die Durchschnittfarbe berechnet werden soll.
      Returns:
      Die Durchschnittsfarbe.
    • chanceHSB

      public static Color chanceHSB(Color color, de.pirckheimer_gymnasium.engine_pi.util.HSBColorVariant variant)
      Ändert die HSB-Werte (Farbton (Hue), Sättigung (Saturation), Helligkeit (Brightness)) einer gegebenen Farbe durch einen Lambda-Funktion.
      Parameters:
      color - Die ursprüngliche Farbe, deren HSB-Werte geändert werden sollen.
      variant - Eine Lambda-Funktion, die die Änderung der HSB-Werte definiert.
      Returns:
      Eine neue Farbe mit den geänderten HSB-Werten.
      Since:
      0.33.0
    • setBrightness

      public static Color setBrightness(Color color, double brightness)
      Setzt die Helligkeit einer gegebenen Farbe auf den angegebenen Wert.
      Parameters:
      color - Die ursprüngliche Farbe, deren Helligkeit geändert werden soll.
      brightness - Der gewünschte Helligkeitswert (zwischen 0.0 und 1.0).
      Returns:
      Eine neue Farbe mit der angepassten Helligkeit.
      Since:
      0.33.0
    • changeBrightness

      public static Color changeBrightness(Color color, double deltaBrightness)
      Ändert die Helligkeit einer gegebenen Farbe um einen bestimmten Betrag.
      Parameters:
      color - Die ursprüngliche Farbe, deren Helligkeit geändert werden soll.
      deltaBrightness - Der Betrag, um den die Helligkeit (zwischen 0.0 und 1.0) geändert werden soll. Positive Werte erhöhen die Helligkeit, negative Werte verringern sie.
      Returns:
      Eine neue Farbe mit der angepassten Helligkeit.
    • setSaturation

      public static Color setSaturation(Color color, double saturation)
      Setzt die Sättigung einer gegebenen Farbe auf den angegebenen Wert.
      Parameters:
      color - Die ursprüngliche Farbe, deren Sättigung geändert werden soll.
      saturation - Der neue Sättigungswert (zwischen 0.0 und 1.0), der angewendet werden soll.
      Returns:
      Eine neue Farbe mit der angepassten Sättigung.
      Since:
      0.33.0
    • changeSaturation

      public static Color changeSaturation(Color color, double deltaSaturation)
      Ändert die Sättigung einer gegebenen Farbe um einen bestimmten Wert.
      Parameters:
      color - Die ursprüngliche Farbe, deren Sättigung geändert werden soll.
      deltaSaturation - Der Wert, um den die Sättigung (zwischen 0.0 und 1.0) erhöht oder verringert werden soll. Positive Werte erhöhen die Sättigung, negative Werte verringern sie.
      Returns:
      Eine neue Farbe mit der angepassten Sättigung.