 |  |  | Cores e códigos hexadecimais |
Cores e códigos hexadecimais
A selecção de uma cor pelo seu código aparece com alguma frequência no
Gimp. Dois exemplos: seleccionar a cor de "foreground", especificar uma
cor de uma palete (modo indexado).
Fundamentos
Clique duas vezes no rectângulo da cor "foreground" (na "Toolbox").
Aparece uma janela intitulada "Change foreground color" que lhe
permite escolher uma cor. Uma dos modos de selecionar uma cor é introduzir
um código de 6 caracteres na entrada "HTML notation", por exemplo
c7b048
e premir "return". (os caracteres podem ser 0, 1,
2,...9, a, b, c, d, e,
f). A cor correspondente ao código c7b048 é um amarelo
"torrado"...como podemos ver na seguinte janela de ajuste da cor
de "foreground"
Nota. Também pode usar maiúsculas, A,
B, C, D, E, e F.
Como interpretar aquele código, c7b048? Primeiro vamos
decompô-lo em 3 grupos de 2 caracteres, correspondentes e 3 "bytes",
c7 b0 48
Os 3 grupos representam respectivamente a intensidade do vermelho (R),
do verde (G) e do azul (B). Assim, temos
R: c7, G: b0, B: 48
Mas como é que a intensidade do vermelho é representada por c7?
Ainda se fosse por um número, como 59...Acontece que c7 representa um número escrito na base
16. Como escrevemos um número na base 16? Primeiro precisamos dos
algarismos:
- Na base 10 os 10 algarismos (nesta caso chamados "dígitos") são
0,
1, 2, 3, 4,
5, 6, 7, 8,
e 9
- Na base 2 os 2 algarismos são 0
e 1.
- Na base 16 os 16 algarismos são (por convenção) 0,
1, 2, 3, 4,
5, 6, 7, 8,
9, a, b, c,
d, e, e f.
Na base 16 (também se diz "em hexadecimal"),
o "a" corresponde ao 10, o "b"
ao 11, o "c" ao 12, o "d"
ao 13, o "e" ao 14, e o "f" ao 15.
Então da mesma maneira que na base 10 escrevemos
192=1×100 + 9×10 + 2,
podemos converter c7 (escrito na base 16) para a base 10
c7 -> 12×16 + 7 = 199
Convertendo também as intensidades de G e de B para a base 10, temos
R: 199, G: 176, B: 72
Que é que isto quer dizer? A cor mais escura que conseguimos definir
com 2 algarismos na base 16 é 0
(00-> 0×16+0) e a
cor mais clara é 255
(ff -> 15×16+15). Assim, o
nosso "amarelo torrado" é formado por um vermelho forte, somado a um
verde relativamente forte e a um azul fraco.
Na base 2, em 3 "bytes" (R, G, B) ficaria
c7 b0 48 -> 1100 0111 1010 0000 0100 1000
Nota. Para melhor compreensão colocamos espaços entre
alguns algarismos. Mas, na realidade, esses espaços não deviam
existir; por exemplo, a conversão anterior deveria ter sido escrita
c7b048 -> 110001111010000001001000
Já agora, como exemplo, vamos converter 11000111
(intensidade do R, escrita na base 2) para a base 10:
11000111 ->
1×27 + 1×26 + 0×25 + 0×24 +
0×23 + 1×22 + 1×21 + 1×20 =
128+64+4+2+1 = 199,
confirmando um resultado anterior.
Algumas observações
- A base 16 não tem nada a ver com cores, é apenas um modo
conveniente de representar a sua intensidade, e de, mais geralmente,
representar o conteúdo de um "byte" (através de 2 algarismos na
base 16). É contudo utilizada extensivamente para representar
cores, por exemplo, em HTML, CSS, e javascript e em muitas
aplicações.
- Embora os 2 algarismos na base 16 permitam 256 níveis de
intensidade (0 a 255) pode ser necessária mais qualidade e usar, por
exemplo, 3 algarismos, que correspondem a 12 bits; neste caso
podemos representar 4096 níveis de intensidade. Muitas máquinas
fotográficas usam (no formato RAW) 12 ou 14 bits para representar
uma intensidade de cor; resta saber se os sensores têm qualidade
que corresponda a esta discriminação...
Por comparação, nos CDs de música, cada amostra (de cada canal)
utiliza 2 "bytes", podendo assim registar 65536 níveis de
amplitude de som (ambos os canais, esquerdo e direito, são amostrados
44100 vezes por segundo).
- Os cinzentos têm igual quantidade de R, G, e B.
Por exemplo, 080808 representa um cinzento escuro.
- O facto de, combinando aditivamente apenas 3 cores (RGB),
conseguirmos obter praticamente todas as cores que o ser humano
consegue ver, é um fenómeno acidental de origem biológica. Tem a
ver com a nossa retina conter 3 tipos de células foto-receptoras
"responsáveis" pela visão diurna; essas células chamam-se
"cones". Os 3 tipos de cones são sensíveis essencialmente ao
vermelho, ao verde e ao azul. Muitas espécies de outros vertebrados
(não mamíferos) consegue distinguir cores pelo menos tão bem como
nós e alguns peixes, pássaros e répteis têm até mais que 3 tipos de
cones...e precisariam de outro hardware e software. Entre um sem
número de referências bibliográficas sobre o mecanismo da visão a
cores, recomendamos, por exemplo, uma discussão já antiquada, mas
clara e interessante, no Capítulo 36 do Volume I das Feynman
Lectures on Physics.
Alguns exercícios
- Na base 16: qual o número que se segue a ff? Qual o
número que se antecede f0? Efectue a soma fa+bb.
Pode pensar por analogia com a base 10.
- Indique um código para um azul esverdeado (ou verde azulado)
bastante forte.
- Veja
aqui
os códigos hexadecimais de várias cores e com diferentes graus
de "luminosidade" ("shades").
Em jeito de resumo
- Cada cor pode ser especificada pela intensidade de 3 cores, R,
G, e B ("red", "green", "blue" - vermelho, verde, azul).
- Tipicamente cada intensidade é "guardada" num "byte" de
informação, o que permite 28=256 níveis de intensidade.
- Combinando as 3 intensidades, cada cor é especificada por 3
"bytes" e pode assumir 256×256×256 (mais de 16
milhões) de valores.
- Cada nível de intensidade é muitas vezes representado por 2
algarismos na base 16: desde 00 a ff (na base 10:
desde 0 a 255).
- a0b401 representa a cor que se obtém "somando"
a0 de vermelho, b4 de verde, e
1 de azul, ou, na base 10, 160 de vermelho,
180 de verde, e 1 de azul.
 |  |  | Cores e códigos hexadecimais |