Package schule.ngb.zm

Class Color

java.lang.Object
schule.ngb.zm.Color
All Implemented Interfaces:
Paint, Transparency

public class Color extends Object implements Paint
Repräsentiert eine Farbe in der Zeichenmaschine.

Farben bestehen entweder aus einem Grauwert (zwischen 0 und 255) oder einem Rot-, Grün- und Blauanteil (jeweils zwischen 0 und 255).

Eine Farbe hat außerdem einen Transparenzwert zwischen 0 (unsichtbar) und 255 (deckend).

  • Field Details

    • BLACK

      public static final Color BLACK
      Die Farbe Schwarz (Grauwert 0).
    • WHITE

      public static final Color WHITE
      Die Farbe Weiß (Grauwert 255).
    • GRAY

      public static final Color GRAY
      Die Farbe Grau (Grauwert 128).
    • DARKGRAY

      public static final Color DARKGRAY
      Die Farbe Dunkelgrau (Grauwert 64).
    • LIGHTGRAY

      public static final Color LIGHTGRAY
      Die Farbe Hellgrau (Grauwert 192).
    • RED

      public static final Color RED
      Die Farbe Zeichenmaschinen-Rot.
    • PURE_RED

      public static final Color PURE_RED
      Die Farbe Rot.
    • GREEN

      public static final Color GREEN
      Die Farbe Zeichenmaschinen-Grün.
    • PURE_GREEN

      public static final Color PURE_GREEN
      Die Farbe Grün.
    • BLUE

      public static final Color BLUE
      Die Farbe Zeichenmaschinen-Blau.
    • PURE_BLUE

      public static final Color PURE_BLUE
      Die Farbe Blau.
    • YELLOW

      public static final Color YELLOW
      Die Farbe Zeichenmaschinen-Gelb.
    • PURE_YELLOW

      public static final Color PURE_YELLOW
      Die Farbe Gelb.
    • ORANGE

      public static final Color ORANGE
      Die Farbe Zeichenmaschinen-Orange.
    • CYAN

      public static final Color CYAN
      Die Farbe Zeichenmaschinen-Türkis.
    • MAGENTA

      public static final Color MAGENTA
      Die Farbe Zeichenmaschinen-Magenta.
    • PINK

      public static final Color PINK
      Die Farbe Zeichenmaschinen-Rosa.
    • PURPLE

      public static final Color PURPLE
      Die Farbe Zeichenmaschinen-Lila.
    • BROWN

      public static final Color BROWN
      Die Farbe Zeichenmaschinen-Braun.
    • HGGREEN

      public static final Color HGGREEN
      Die Farbe Helmholtz-Grün.
    • HGRED

      public static final Color HGRED
      Die Farbe Helmholtz-Rot.
  • Constructor Details

    • Color

      public Color()
      Erstellt eine leere (schwarze) Farbe.
    • Color

      public Color(int gray)
      Erstellt eine graue Farbe entsprechend dem Grauwert gray.
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
    • Color

      public Color(int gray, int alpha)
      Erstellt eine graue Farbe entsprechend dem Grauwert gray und dem Transparenzwert alpha.
      Parameters:
      gray - Ein Grauwert zwischen 0 und 255.
    • Color

      public Color(int red, int green, int blue)
      Erstellt eine Farbe. Die Parameter red, green und blue geben die Rot-, Grün- und Blauanteile der Farbe. Die Werte liegen zwischen 0 und 255.
      Parameters:
      red - Rotwert zwischen 0 und 255.
      green - Grünwert zwischen 0 und 255.
      blue - Blauwert zwischen 0 und 255.
    • Color

      public Color(int red, int green, int blue, int alpha)
      Erstellt eine Farbe. Die Parameter red, green und blue geben die Rot-, Grün- und Blauanteile der Farbe. Die Werte liegen zwischen 0 und 255. alpha gibt den den Transparentwert an (auch zwischen 0 und 255), wobei 0 komplett durchsichtig ist und 255 komplett deckend.
      Parameters:
      red - Rotwert zwischen 0 und 255.
      green - Grünwert zwischen 0 und 255.
      blue - Blauwert zwischen 0 und 255.
      alpha - Transparentwert zwischen 0 und 255.
    • Color

      public Color(Color color)
      Erstellt eine Farbe als Kopie von color.
      Parameters:
      color - Eine Farbe.
    • Color

      public Color(Color color, int alpha)
      Erstellt eine Farbe als Kopie von color und ersetzt den Transparentwert durch alpha.
      Parameters:
      color - Eine Farbe.
      alpha - Der neue Transparenzwert.
    • Color

      public Color(Color color)
    • Color

      public Color(Color color, int alpha)
  • Method Details

    • getRGBColor

      public static Color getRGBColor(int rgba)
      Erzeugt eine Farbe aus einem kodierten RGBA Integer-Wert.

      Der 32-bit Integer enthält (von rechts) in Bit 1 bis 8 den Rotwert, in Bit 9 bis 16 Grünwert, in Bit 17 bis 24 den Blauwert und in Bit 25 bis 32 den Transparenzwert der Farbe.

      Parameters:
      rgba - Eine RGBA-Farbe.
      Returns:
      Ein Farbobjekt.
    • getHSBColor

      public static Color getHSBColor(double h, double s, double b)
      Erzeugt eine Farbe aus Werten im HSB-Farbraum.

      {code h} beschreibt den Farbwert (engl. hue), s die Sättigung (engl. saturation) und b die absolute Helligkeit (engl. brightness) der Farbe. Alle Werte werden zwischen 0.0 und 1.0 angegeben.

      Parameters:
      h - Der Farbwert.
      s - Die Sättigung.
      b - Die absolute Helligkeit.
      Returns:
      Ein Farbobjekt.
      See Also:
    • getHSLColor

      public static Color getHSLColor(double h, double s, double l)
      Erzeugt eine Farbe aus Werten im HSL-Farbraum.

      {code h} beschreibt den Farbwert (engl. hue), s die Sättigung (engl. saturation) und l die relative Helligkeit (engl. lightness) der Farbe. Alle Werte werden zwischen 0.0 und 1.0 angegeben.

      Parameters:
      h - Der Farbwert.
      s - Die Sättigung.
      l - Die relative Helligkeit.
      Returns:
      Ein Farbobjekt.
    • parseString

      public static Color parseString(String color)
      Erstellt aus einem Farbnamen ein Farbobjekt.

      Die gültigen Farbnamen können unter https://htmlcolors.com/color-names nachgeschlagen werden.

      Parameters:
      color - Der Name einer Farbe.
      Returns:
      Ein Farbobjekt.
    • parseHexcode

      public static Color parseHexcode(String hexcode)
      Erzeugt eine Farbe aus einem hexadezimalen Code. Der Hexcode kann drei-, sechs- oder achtstellig sein (wenn ein Transparentwert vorhanden ist). Dem Code kann ein # Zeichen vorangestellt sein, muss es aber nicht.

      Bei einem dreistelligen Code wird jedes zeichen doppelt interpretiert. Das beduetet #ABC ist gleichbedeutend mit #AABBCC.

      Parameters:
      hexcode - Eine Farbe als Hexcode.
      Returns:
      Ein Farbobjekt.
    • interpolate

      public static Color interpolate(Color color1, Color color2, double t)
    • interpolate

      public static Color interpolate(Color color1, Color color2, double t)
    • RGBtoHSL

      public static float[] RGBtoHSL(int rgb, float[] hsl)
    • HSLtoRGB

      public static int HSLtoRGB(float[] hsl)
      Konvertiert die Komponenten einer Farbe aus dem HSL-Farbraum in den RGB-Farbraum.
      Parameters:
      hsl - Die HSL-Komponenten als float-Array.
      Returns:
      Der RGBA-Farbwert.
      See Also:
    • HSLtoRGB

      public static int HSLtoRGB(float[] hsl, int alpha)
      Konvertiert eine Farbe mit Komponenten im HSL-Farbraum in den RGB-Farbraum.

      Die Farbkomponenten werden als float-Array übergeben. Im Index 0 steht der H-Wert im Bereich 0 bis 360, Index 1 und 2 enthalten den S- und L-Wert im Bereich von 0 bis 1.

      Parameters:
      hsl - Die Farbkomponenten im HSL-Farbraum.
      alpha - Ein Transparenzwert im Bereich 0 bis 255.
      Returns:
      Der RGBA-Wert der Farbe.
    • copy

      public Color copy()
      Erzeugt eine Kopie dieser Farbe.
      Returns:
      Ein neues Farbobjekt.
    • getRGBA

      public int getRGBA()
      Gibt den RGBA-Wert dieser Farbe zurück.

      Eine Farbe wird als 32-Bit Integer gespeichert. Bits 24-31 enthalten den Transparenzwert, 16-23 den Rotwert, 8-15 den Grünwert und 0-7 den Blauwert der Farbe.

      Returns:
      Der RGBA-Wert der Farbe.
      See Also:
    • getRed

      public int getRed()
      Gibt den Rotwert dieser Farbe zurück.
      Returns:
      Der Rotwert der Farbe zwischen 0 und 255.
    • getGreen

      public int getGreen()
      Gibt den Grünwert dieser Farbe zurück.
      Returns:
      Der Grünwert der Farbe zwischen 0 und 255.
    • getBlue

      public int getBlue()
      Gibt den Blauwert dieser Farbe zurück.
      Returns:
      Der Blauwert der Farbe zwischen 0 und 255.
    • getAlpha

      public int getAlpha()
      Gibt den Transparenzwert dieser Farbe zurück.
      Returns:
      Der Transparenzwert der Farbe zwischen 0 und 255.
    • getJavaColor

      public Color getJavaColor()
      Erzeugt ein Color-Objekt aus dieser Farbe.

      Das erzeugte Farbobjekt hat dieselben Rot-, Grün-, Blau- und Transparenzwerte wie diese Farbe.

      Returns:
      Ein Java-Farbobjekt.
    • createContext

      public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform xform, RenderingHints hints)
      Specified by:
      createContext in interface Paint
    • getTransparency

      public int getTransparency()
      Specified by:
      getTransparency in interface Transparency
    • compare

      public double compare(Color color)
    • equals

      public boolean equals(Object obj)
      Prüft, ob ein anderes Objekt zu diesem gleich ist.

      Die Methode gibt genau dann true zurück, wenn das andere Objekt nicht null ist, vom Typ Color ist und es dieselben Rot-, Grün-, Blau- und Transparenzwerte hat.

      Overrides:
      equals in class Object
      Parameters:
      obj - Das zu vergleichende Objekt.
      Returns:
      true, wenn die Objekte gleich sind, sonst false.
    • toString

      public String toString()
      Erzeugt einen Text-String, der diese Farbe beschreibt.
      Overrides:
      toString in class Object
      Returns:
      Eine Textversion der Farbe.
    • hashCode

      public int hashCode()
      Berechnet einen Hashcode für dieses Farbobjekt.
      Overrides:
      hashCode in class Object
      Returns:
      Ein Hashcode für diese Rabe.
    • brighter

      public Color brighter()
      Erzeugt eine um 30% hellere Version dieser Farbe.
      Returns:
      Ein Farbobjekt mit einer helleren Farbe.
    • brighter

      public Color brighter(int percent)
      Erzeugt eine um percent hellere Version dieser Farbe.
      Parameters:
      percent - Eine Prozentzahl zwischen 0 und 100.
      Returns:
      Ein Farbobjekt mit einer helleren Farbe.
    • darker

      public Color darker()
      Erzeugt eine um 30% dunklere Version dieser Farbe.
      Returns:
      Ein Farbobjekt mit einer dunkleren Farbe.
    • darker

      public Color darker(int percent)
      Erzeugt eine um percent dunklere Version dieser Farbe.
      Parameters:
      percent - Eine Prozentzahl zwischen 0 und 100.
      Returns:
      Ein Farbobjekt mit einer dunkleren Farbe.
    • greyscale

      public Color greyscale()
    • inverted

      public Color inverted()
      Erzeugt eine zu dieser invertierte Farbe.
      Returns:
      Ein Farbobjekt mit der invertierten Farbe.
    • complement

      public Color complement()
      Erzeugt die Komplementärfarbe zu dieser.
      Returns:
      Ein Farbobjekt mit der Komplementärfarbe.
    • textcolor

      public Color textcolor()
      Wählt entweder weiß oder schwarz aus, je nachdem, welche der Farben besser als Textfarbe mit dieser Farbe als Hintergrund funktioniert (besser lesbar ist).
      Returns:
      Schwarz oder weiß.