Come fa il codice binario, che è solo 1 e 0, a far vedere i colori a un computer?

La gestione dei colori è un po' una stranezza nella programmazione dei computer, perché praticamente tutti i linguaggi/sistemi elaborano i colori in modo molto simile. E probabilmente lo faranno sempre in questo modo, perché è legato a come funziona la vista umana (e questo non cambierà).

I nostri occhi possono davvero vedere solo 3 colori, rosso, verde e blu. Tutti gli altri colori sono miscele. Quindi i monitor hanno pixel indipendenti di rosso, verde e blu.

È un po' eccessivo, ma se permettiamo 8 bit (256 valori possibili) per ciascuno di rosso, verde e blu possiamo generare ogni colore che possiamo percepire. Aggiungiamo altri 8 bit per la trasparenza, e sono 32 bit - 8 bit per il rosso, il verde, il blu e la trasparenza. Che è 8 x 4 = 32 bit di informazione per pixel, che è la lunghezza di un numero intero nella maggior parte delle lingue.

Così i computer generano un numero intero di 32 bit per ogni pixel sullo schermo. L'hardware del monitor separa queste informazioni in rosso, verde, blu e trasparenza e le usa per determinare la luminosità relativa dei pixel rossi, verdi e blu e quindi il colore finale.

Molti linguaggi (Java, C#) non hanno nemmeno classi concrete per il colore, usano solo ints. I sistemi operativi Apple hanno classi di colore concrete, ma sono facilmente traducibili da e verso RGB e non sono poi così diversi sotto il cofano.