Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int...

11
Colori e Font in java

Transcript of Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int...

Page 1: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Colori e Font

in java

Page 2: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

classe java.awt.Color

ha diversi costruttori:

Color( int red, int green, int blue)per definire un colore partendo dalle sue tre componenti. (i tre interi hanno valori 0-255)

Color( int red, int green, int blue, alfa)come sopra con in più la trasparenza (valori tra 0=trasparente e 100=opaco

Color( int colore)di solito si esprime in esadecimale tipo 0x8a3b2f

Page 3: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Il colore…

• RGB: Red Green Blue (rosso verde blu)

• HSB: Hue Saturation Brightness (Tinta, Saturazione, Luminosità)

• Se vogliamo indicare un colore con il metodo HSB possiamo usare il metodo statico (i 3 int sono nel range 0-255)

Color.getHSBColor(int hue, int saturation, int brightness);

Page 4: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Il colore…

• CMJK Ciano, magenta giallo e nero, usato per la stampa

• sono i colori complementari di rosso, verde, blu (sintesi sottrattiva)

• c = 255-red; m = 255-green; y = 255-blu• Il K è il colore nero che viene aggiunto per

la stampa. La sua intensità vale K=min(c,m,y); questa viene poi sottratta ai valori precedenti: C = c-k, M = m-k, J = j -k

Page 5: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Il colore

• In alcuni casi è conveniente considerare le componenti dei colori come un numero compreso tra 0 e 1 anziché tra (0 e 255)

• In questo caso vengono utilizzati 3 float.• metodi statici di Color per conversioni

static int HSBtoRGB(float hue, float saturation, float brightness)

static float[] RGBtoHSB(int red, int green, int blue, float[] hsb)

Page 6: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Esempio Conversioni

float h = 0.2f; float s=0.5f;

float b= 0.85f;

int col = Color.HSBtoRGB(h, s,b);

String esaColore = Integer.toHexString(col);

int rosso = (new Color(col) ).getRed();

int verde = (new Color(col) ).getGreen();

int blu = (new Color(col) ).getBlue();

float [] z = new float[3];

z = Color.RGBtoHSB(rosso, verde, blu, z);

Page 7: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Colori

RGB: casi particolari

•nero: 0,0,0 bianco=255,255,255

Lo stesso valore per le 3 componenti da luogo ad un colore grigio. Per rendere una foto in bianco e nero si può usare la formula:

luminanza= 0.59*g + 0.3*r+0.11*b

e usare questo valore per le 3 componenti

Page 8: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

classe Color

• black, blue, cyan, darkGray, gray, green, lightGray,magenta, orange, pink, red, white, yellow

• Color.colore restituisce un oggetto Color; il nome del colore è definito sia in minscolo che in maiuscolo. Es:

Color.magenta o Color.MAGENTA

Page 9: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Dove utilizzare i colori

i componenti della classe Component hanno

• void setBackground(Color c)• Color getBackground()

• void setForeground(Color c)• Color getForeground()

il colore di primo piano serve per disegnare testi, righe, archi, ecc.

Page 10: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Trasparenza

• Gli oggetti awt non gestiscono la trasparenza

• Gli oggeti swing sì

• import javax.swing.*

• JFrame JLabel

• Gli oggetti swing ereditano dalla classe awt

Page 11: Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int blue) per definire un colore partendo dalle sue tre.

Class Font

new Font( String familyName, int style, int size )

•familyName: GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); restituisce un vettore si strighe con tutti i font disponibili (variano da pc a pc; importare java.awt.*)

style: Font.BOLD Font.ITALIC•size: grandezza in pixel