cores de 48 bits?

4

Muitas vezes, especialmente em itens relacionados ao X11 (recursos X, temas do Roxterm, etc), vejo cores especificadas como números de 48 bits: #2e2e34343636 , #cccc00000000 em vez dos usuais 24 bits #2e3436 e% código%. Quais são os bits extras usados?

    
por grawity 20.03.2010 / 18:22

3 respostas

2

Eu encontrei a resposta na documentação do Xlib em "Color strings". Parece que o Xlib realmente usa valores RGB de 16 bits para cores:

RGB Device String Specification

[...] an older syntax for RGB Device is supported, but its continued use is not encouraged. The syntax is an initial sharp sign character followed by a numeric specification, in one of the following formats:

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

The R, G, and B represent single hexadecimal digits. When fewer than 16 bits each are specified, they represent the most significant bits of the value (unlike the “rgb:” syntax, in which values are scaled). For example, the string “#3a7” is the same as “#3000a0007000”.

    
por 20.08.2012 / 14:46
1

Eu não posso falar sobre o uso do X11, mas geralmente: valores de cor adicionais que não podem ser produzidos em profundidades de bit menores e canais alfa.

    
por 20.03.2010 / 18:24
1

Dos exemplos que você dá, eles não estão sendo usados, já que o valor de 24 bits está sendo repetido (um pouco como a prática de usar apenas 3 caracteres hexadecimais para representar cores "websafe", então # c00 significa o mesmo que # cc0000 ou 204,0,0, estendido para # cccc00000000).

Os valores de 32 bits normalmente usariam o último byte para canal alfa (transparência). Eu acho que é possível que os valores de 48 bits estejam usando cores de 24 bits com um alfa independente por cor, mas os exemplos que você dá não suportam isso.

    
por 22.05.2010 / 12:31

Tags