Clasa Color

Clasa Color încapsulează culorile din spațiul de culori implicit sRGB, sau culori dintrun spqațiu de culori arbitrar, identificat prin ColorSpace. Fiecare culoare conține, în afară de componentele de culoare fundamentale, și o componentă numită alpha, care semnifică opacitatea și are valori reale în intervalul 0.0 ... 1.0 sau valori întregi în intervalul 0 .. 255. Valoarea alpha=0 înseamnă opacitate nulă (culoare total transparentă), iar valoarea maximă a lui alpha înseamnă opacitate maximă (culoare total netransparentă). În mod implicit se admite opacitatea maximă.

Culorile fundamentale din sistemul sRGB (standard RGB) sunt următoarele: red (roșu), green (verde) și blue (albastru). Acestea pot fi date prin numere întregi în intervalul 0 .. 255 sau prin numere reale în intervalul 0.0 .. 1.0. Aceste valori reprezintă intensitatea culorii fundamentale respective în culoarea dată. Orice culoare se obține prin combinarea acestor trei componente fundamentale, cu intensități diferite. Explicații suplimentare sunt date și în secțiunea "Clasa Color" din acest manual.

Valorile componentelor fundamentale ale culorii pot fi date și împachetate într-un singur număr de tip int, în care fiecare octet conține una din componente (în intervalul 0 .. 255) astfel: blue - biții 0 ..7; green: biții 8 .. 15; red: biții 16 .. 23; alpha: biții 24 .. 31.

Clasa Color conține și câmpuri finale pentru culorile tipice.

Câmpuri

public static final Color white - culoarea albă.

public static final Color lightGray - culoarea gri deschis.

public static final Color gray - culoarea gri.

public static final Color darkGray - culoarea gri închis.

public static final Color black - culoarea neagră.

public static final Color red - culoarea roșie.

public static final Color pink - culoarea roz.

public static final Color orange - culoarea portocalie (orange).

public static final Color yellow - culoarea galbenă.

public static final Color green - culoarea verde.

public static final Color magenta - culoarea violet.

public static final Color cyan - culoarea azuriu (albastru deschis)

public static final Color blue - culoarea albastră.

Constructori

public Color(int r, int g, int b) - creează o instanță a clasei Color pentru cu culoarea cu componentele RGB specificate prin numere întregi cuprinse între 0 și 255.

public Color(int r, int g, int b, int a) - creează o instanță a clasei Color pentru cu culoarea cu componentele RGB și componenta a (alpha) specificate prin numere întregi cuprinse între 0 și 255.

public Color(int rgb) - creează o instanță a clasei Color, dându-i ca argument un număr de tip int (pe 4 octeți), care în primii trei octeți conține cele trei componente fundamentale.

public Color(int rgba, boolean hasalpha) - creează o instanță a clasei Color, dându-i ca argument un număr de tip int (pe 4 octeți), care în primii trei octeți conține cele trei componente fundamentale, iar în ultimul octet componenta alpha. Al doilea argument indică dacă există sau nu componenta alpha.

public Color(float r, float g, float b) - creează o instanță a clasei Color pentru cu culoarea cu componentele RGB specificate prin numere reale cuprinse între 0.0 și 1.0.

public Color(float r, float g, float b, float a) - public Color(int r, int g, int b, int a) - creează o instanță a clasei Color pentru cu culoarea cu componentele RGB și componenta a (alpha) specificate prin numere reale cuprinse între 0.0 și 1.0.

public Color(ColorSpace cspace, float[] components, float alpha) - creează o instanță a clasei Color, dându-se spațiul de culori cspace (instanță a clasei ColorSpace), tabloul de componente components și opacitatea alpha.

Metode

public int getRed() - întoarce componenta roșie.

public int getGreen() - întoarce componenta verde.

public int getBlue() - întoarce componenta albastră.

public int getAlpha() - întoarce componenta alpha.

public int getRGB() - întoarce un int, care conține sub formă împachetată cele patru componente (r, g, b, alpha).

public Color brighter() - întoarce o variantă mai deschisă a acestei culori.

public Color darker() -  întoarce o variantă mai închisă a acestei culori.

public static Color decode(String nm) throws NumberFormatException - convertește un șir de caractere, care reprezintă culoarea codificată în octal sau hexazecimal, și întoarce instanța corespunzătoare a clasei Color.

public static Color getColor(String nm) - caută o culoare în proprietățile sistemului: caută proprietatea cu numele nm și decodifică valoarea acestei proprietăți (care este interpretat ca un șir care conține număr întreg), generând instanța corespunzătoare a clasei Color.

public static Color getColor(String nm, Color v) - similar cu metoda precedentă, dar se indică și culoarea implicită v care va fi folosită dacă proprietatea de sistem cu numele nm.

public static Color getColor(String nm, int v) - similar cu metoda precedentă, dar culoarea implicită este dată printr-un număr întreg.

public static int HSBtoRGB(float hue, float saturation, float brightness) - convertește culoarea din sistemul HSB (dată prin parametrii hue: nuanță, saturation: saturație și brightness: strălucire) într-o culoare din sistemul RGB, reprezentată sub forma unui număr de tip int.

public static float[] RGBtoHSB(int r, int g, int b, float[] hsbvals) - face conversia culorii din RGB în HSB. Întoarce un tablou, care conține cele trei componente fundamentale HSB, corespunzătoare componentelor de culoare RGB date ca parametri. Ultimul argument poate fi null, sau poate conține un tablou în care se vor întoarce componwentele HSB rezultate.

public static Color getHSBColor(float h, float s, float b) - întoarce o instanță a clasei Color, care conține culoarea pentru care s-au dat ca argumente valorile componentelor sale în sistemul HSB.

public float[] getRGBComponents(float[] compArray) - întoarce un tablou de tip float care conține cele trei componente RGB și componenta alpha pentru această culoare. Parametrul compArray poate fi null, sau este un tablou cu cel puțin 4 componente de tip float, în care se vor pune valorile întoarse.

public float[] getRGBColorComponents(float[] compArray) - similar cu metoda precedentă, dar întoarce un tablou cu trei componente, care conține numai cele trei componente RGB (fără componenta alpha).

public ColorSpace getColorSpace() - întoarce spațiul culorilor pentru această culoare (o instanță a clasei ColorSpace).

public PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints) - întoarce un context de desenare, care este necesar ca argument în metodele claselor cu interfața Paint.

public int getTransparency() - întoarce transparența acestei culori (necesară pentru implementarea interfeței Paint).