La composizione dei colori: l’ RGB
E’ stato dimostrato che l’occhio umano è in grado di distinguere oltre 10 milioni di sfumature di colore diverse. Un numero assolutamente impressionante se ci fermiamo a riflettere su quanti pochi aggettivi abbiamo invece a disposizione per descrivere un colore. È anche vero che nella vita quotidiana nemmeno ci importa distinguere così tante sfumature diverse, a meno che forse non siate fotografi, grafici o web designer, professioni nelle quali invece si presta molta più attenzione ai colori. Risulta perciò necessario stabilire in maniera univoca ciascuna singola sfumatura, ogni possibile tonalità di colore, attribuendovi uno specifico codice numerico. A partire dagli ’30 dello scorso secolo sono stati sviluppati dei modelli di colore, ossia modelli matematici astratti che permettessero di rappresentare i colori in forma numerica, tipicamente utilizzando tre o quattro valori o componenti cromatiche (ad esempio RGB e CMYK sono modelli di colore). I vari modelli di colore fanno riferimento al cosiddetto spazio dei colori: il più comune di questi lo possiamo immaginare come un cubo allineato agli assi cartesiani di uno spazio tridimensionale, all’interno del quale sono contenute tutte le possibili sfumature di colore. Con questa rappresentazione ogni tonalità possibile ha una sua posizione univoca, identificabile dalle tre coordinate spaziali, cioè dai valori che il punto considerato assume sull’asse delle X, delle Y e delle Z.
Il modello RGB: “i colori nel mondo digitale”
Questo modello di colori è di tipo additivo e si basa su tre colori primari: il rosso, il verde e il blu, da cui appunto l’acronimo inglese RGB (Red-Green-Blue). Un’immagine può infatti essere scomposta, attraverso filtri o altre tecniche, in questi tre colori base che opportunamente miscelati tra loro danno (quasi) tutto lo spettro dei colori visibili. L’RGB è un modello additivo: unendo i tre colori primari alla loro intensità massima si ottiene il bianco, poiché tutta la luce viene riflessa. Di conseguenza il modello RGB viene utilizzato qualora le immagini non debbano essere stampate (caso in cui vale la sintesi sottrattiva descritta dal modello CMYK ad esempio) ma visualizzate unicamente su un monitor, una TV, uno smartphone o qualsiasi altra sorgente luminosa per la quale valga il modello additivo della luce. Se disponiamo su ciascuno dei tre assi cartesiani intensità crescenti di rosso, verde e blu, otterremo lo spazio dei colori accennato prima, ossia quel cubo immaginario che racchiude al suo interno tutte le possibili sfumature cromatiche. È ovvio dedurre che nel punto di origine degli assi (coordinate 0,0,0) tutti e tre i colori avranno intensità pari a zero, cioè l’assenza completa di colore (nero) e, diametralmente opposto, avremo il punto in cui l’intensità di ciascun colore è la massima possibile, dove si originerà al contrario il bianco. In questo modello il valore massimo che ciascuno dei tre primari può assumere è 255. Ma come mai l’intensità massima del rosso, verde e blu è proprio 255 e non, che so, 100 o 1000? Esso dipende dalla profondità di colore, ossia dalla quantità di bit necessari per rappresentare il colore di un singolo pixel. Il modello RGB infatti può essere applicato in modi differenti, a seconda delle possibilità del sistema usato. A partire dal 2005, di gran lunga le più comuni usate sono le 24 esecuzioni del bit: fornendo 8 bit per ciascuno dei tre canali RGB si possono ottenere 28 = 256 (da 0 a 255 compresi) livelli discreti per definire la profondità di colore. Perciò l’intero spazio di colore basato sul modello RGB a 24-bit è esteso così ad una gamma di 256(R) × 256(G) × 256(B) = 16,7 milioni di colori possibili! In definitiva, per rappresentare numericamente un colore col modello RGB abbiamo bisogno di una tripletta di valori, dove ciascuno indica l’intensità di colore, in ordine, di rosso, verde e blu (ad esempio 0,255,0 equivale al verde pieno). Soprattutto nel mondo del web tuttavia, indicare un colore in triplette e ben nove cifre complessive, può risultare scomodo. Per tale motivo si è soliti convertire i tre valori decimali dell’ RGB in formato esadecimale. L’ esadecimale è un sistema numerico in base 16, che utilizza cioè 16 simboli invece dei 10 del sistema numerico decimale tradizionale. Per l’esadecimale si usano simboli da 0 a 9 per le prime dieci cifre, e poi le lettere da A a F per le successive sei cifre, per un totale di 16 simboli (il colore bianco ad esempio viene convertito da 255,255,255 in decimale a #ffffff in esadecimale). Poiché questa notazione può comprendere sia cifre che lettere, per evitare che possa essere fraintesa è sempre preceduta da #
Riassumendo, il modello di colore RGB:
E’ una tricromia, in cui i primari sono rosso, verde e blu;
E’ di tipo additivo;
Viene utilizzato per visualizzare immagini su monitor e nel web, non per la stampa;
Lo standard attuale è a 24-bit (8 per ciascun canale) con una gamma cromatica di oltre 16,7 milioni di colori;
Numericamente i colori sono indicati da triplette di valori decimali (da 0 a 255) oppure in formato esadecimale.
Il modello RGBA: come creare i fantasmi!
Finora si è parlato del modello RGB senza prendere in considerazione una caratteristica abbastanza importante: la trasparenza. Nell’elaborazione di immagini digitali succede spesso di dover sovrapporre, anche solo parzialmente, due o più immagini applicando a quella sovrastante effetti di trasparenza. Il modello RGB non è in grado di supportare questi effetti, perché le informazioni relative a ciascuno dei tre canali di colore riguardano unicamente l’intensità del colore stesso, non la sua opacità (risultando perciò opaco al 100%). Per aggirare l’inconveniente si è pensato di aggiungere al preesistente modello RGB un quarto canale, detto canale alfa, ottenendo così un nuovo modello di colore: l’ RGBA (Red-Green-Blue-Alpha). Il canale alfa è un canale aggiuntivo, che descrive il grado di trasparenza/opacità (con un valore numerico variabile a seconda dei file grafici utilizzati) di ogni determinato pixel. I formati immagine più popolari che lo supportano sono il PNG e TIFF. Le informazioni di trasparenza/opacità contenute nel canale alfa richiedono l’utilizzo di altri 8 bit rispetto al classico RGB: dedicando 8 bit non più a tre, ma quattro canali totali, lo standard nel modello RGBA è 8 × 4 = 32 bit. Ovviamente però il maggior “peso” delle immagini non andrà ad influire sulla quantità di colori complessivi, che rimarranno sempre 16,7 milioni. A differenza degli altri tre canali, la trasparenza/opacità può assumere valori numerici che variano a seconda dei file o delle applicazioni che la supportano. Nei CSS ad esempio il canale alfa si indica con valori compresi tra 0 (completamente trasparente) e 1 (completamente opaco); nel caso seguente: { background-color: rgba(255, 255, 255, 0.5); } il valore 0,5 finale indica una opacità del 50%.
Riassumendo, il modello di colore RGBA:
Supporta effetti di trasparenza/opacità;
E’ identico al modello RGB, fatta eccezione per la presenza di un quarto canale, detto canale alfa;
Lo standard è a 32-bit, poiché oltre ai 24 bit dei tre canali RGB ne occorrono altri 8 per il canale alfa;
I formati di immagini più diffusi sono PNG e TIFF.