Como funcionam os códigos de cores de doze caracteres?

Como funcionam os códigos de cores de doze caracteres?

Possível duplicata:
Cores de 48 bits?

Estou usando o ambiente de desktop Xfce 4.10 no Ubuntu 12.04. Ao tentar fazer as coisas do jeito que eu quero, me deparei#aaaaaaaaaaaae#666666666666em ~/.config/Terminal/terminalrc.

[Configuração]

CorForeground=#aaaaaaaaaaaa

linhas excluídas...

Cursor de cores=#666666666666

FontName=Monoespaçado 11

Olhandoem outro lugar, por exemplo, vejo códigos mais complexos como os em negrito abaixo:

! Cores de borda ativas

Mwm*ativoFundo:#9851785167AD

Mwm*activeTopShadowColor:#AF4199C18E2E

Mwm*activeBottomShadowCor:#529737652849

Eu sei sobre o código hexadecimal de 6 caracteres e o código RGB deaquimas espero que alguém aqui possa explicar a base desses códigos de cores de doze caracteres ou me indicar alguma leitura fácil sobre eles.

Responder1

A documentação do Xlib, seção "Sequências de cores", menciona isso. Parece que o Xlib realmente usa valores RGB de 16 bits (o CSS é limitado a 8 bits e usa uma sintaxe semelhante).

Especificação de string de dispositivo RGB

[...] uma sintaxe mais antiga para dispositivo RGB é suportada, mas seu uso continuado não é incentivado. A sintaxe é um caractere sustenido inicial seguido por uma especificação numérica, em um dos seguintes formatos:

#RGB          (4 bits each)
#RRGGBB       (8 bits each)
#RRRGGGBBB    (12 bits each)
#RRRRGGGGBBBB (16 bits each)

O R, G e B representam dígitos hexadecimais únicos. Quando menos de 16 bits são especificados cada um, eles representam os bits mais significativos do valor (ao contrário da sintaxe “rgb:”, na qual os valores são escalonados). Por exemplo, a string “ #3a7” é igual a “ #3000a0007000”.

informação relacionada