Se você prestou muita atenção à janela do terminal Linux, ou o console do Windows, você pode notar que o texto vem apenas em um conjunto limitado de cores. Por que as cores são assim?? A maneira que a IBM escolheu para renderizar a cor do texto no PC original definiu o padrão para a cor do texto a seguir.
O computador pessoal IBM original da 1981 usou uma tela monocromática, onde todo o texto era verde em um fundo preto simples. Pouco depois, IBM apresentou o Color Graphics Adapter, o CGA, quem foi o primeiro a admitir cor. Naqueles primeiros dias da história do PC, memória era limitada, então a IBM espremeu a maioria das funções desses dados limitados.
Ele pode exibir qualquer cor combinando diferentes quantidades de luz vermelha, puro verde e azul. Esta combinação de vermelho + verde + azul (sobre “RGB”) é a base para todas as cores do PC. Vamos começar com o caso mais simples, onde você pode misturar quantidades iguais de luz vermelha, verde e azul. Representar essa combinação precisa de um valor de “em” o “desligado” para cada componente de “RGB”. E lembre-se que um “em” o “desligado” também é chamado “pedaço” em terminologia computacional: 1 o 0.
Nesse caso mais simples, pode cuidar para que um bit represente cada cor: vermelho, verde e azul. Se algum dos bits “RGB” for 1, então mostra luz vermelha, verde ou azul em intensidade total. Isso dá oito cores possíveis:
000 negro | |
001 azul | |
010 verde | |
011 cian | |
100 vermelho | |
101 Magenta | |
110 Amarelo | |
111 Branco |
Você pode dobrar o número de cores adicionando um pouco mais, e é assim que a IBM definiu o padrão CGA. Em vez de apenas três bits como “RGB”, CGA implementou cores como “iRGB”, onde a primeira parte foi o “intensidade”. Se o primeiro bit for definido como 1, então o PC exibiria a cor com brilho total. Se o primeiro bit fosse definido como 0, então mostraria a cor com um brilho menor.
A IBM realmente implementou um modelo “iRGB” modificado. Se o pouco de “intensidade” era 0, então qualquer 1 sobre “RGB” significava que as cores vermelhas, verde ou azul foram definidos para brilho de dois terços. E se o pouco de “intensidade” era 1, então qualquer 1 sobre “RGB” significava que vermelho, verde ou azul foi definido com brilho total, mas qualquer 0 sobre “RGB” foi definido para um terço de brilho. A única exceção foi 0110, que recebeu um terceiro brilho verde (“G”), que converteu o “amarelo de baixa intensidade” em uma cor laranja ou marrom.
0000 negro | 1000 preto brilhante | ||
0001 Azul | 1001 azul claro | ||
0010 Verde | 1010 Verde brilhante | ||
0011 Cian | 1011 Ciano brilhante | ||
0100 vermelho | 1100 vermelho brilhante | ||
0101 Magenta | 1101 Magenta brilhante | ||
0110 marrom | 1110 Amarelo | ||
0111 Branco | 1111 Branco brilhante |
Com este modelo “iRGB”, CGA foi capaz de exibir dezesseis cores: oito cores de “baixa intensidade” e oito cores de “alta intensidade”. Por outras razões técnicas, o PC só poderia exibir todas as oito cores de “baixa intensidade” como cores de fundo. Mas o texto em primeiro plano pode tirar proveito das dezesseis cores.
Na atualidade, emuladores de terminal como o Terminal GNOME permitem que você mude a paleta de cores. Dependendo das cores que você escolher, você pode ver cores diferentes das mostradas aqui, mas ainda limitado a dezesseis cores de texto e oito cores de fundo.