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 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.