Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int...
-
Upload
orsola-del-prete -
Category
Documents
-
view
223 -
download
1
Transcript of Colori e Font in java. classe java.awt.Color ha diversi costruttori: Color( int red, int green, int...
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 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
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);
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
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)
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);
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
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
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.
Trasparenza
• Gli oggetti awt non gestiscono la trasparenza
• Gli oggeti swing sì
• import javax.swing.*
• JFrame JLabel
• Gli oggetti swing ereditano dalla classe awt
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