48-bitowe kolory?

4

Dość często, zwłaszcza w przypadku rzeczy związanych z X11 (zasoby X, motywy Roxterm itp.) Widzę kolory określone jako liczby 48-bitowe: #2e2e34343636, #cccc00000000 zamiast zwykłego 24-bitowego #2e3436 i #cc0000. Do czego służą dodatkowe bity?

grawity
źródło

Odpowiedzi:

2

Odpowiedź znalazłem w dokumentacji Xlib w „Kolorach łańcuchów”. Wydaje się, że Xlib faktycznie używa 16-bitowych wartości RGB dla kolorów:

Specyfikacja ciągu urządzeń RGB

[...] obsługiwana jest starsza składnia urządzenia RGB, ale nie zaleca się jego dalszego używania. Składnia jest początkowym znakiem ostrego znaku, po którym następuje numeryczna specyfikacja w jednym z następujących formatów:

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

R, G i B reprezentują pojedyncze cyfry szesnastkowe. Gdy podano mniej niż 16 bitów, reprezentują one najbardziej znaczące bity wartości (w przeciwieństwie do składni „rgb:”, w której wartości są skalowane). Na przykład ciąg „ #3a7 " jest taki sam jak " #3000a0007000

grawity
źródło
1

Nie mogę mówić o używaniu ich przez X11, ale ogólnie: dodatkowe wartości kolorów, które nie mogą być produkowane w mniejszej głębi bitowej i kanałach alfa.

Hasaan Chop
źródło
1

Z podanych przykładów nie są w ogóle używane, ponieważ wartość 24-bitowa jest po prostu powtarzana (trochę jak praktyka używania tylko 3 znaków szesnastkowych do reprezentowania kolorów „bezpiecznych”, więc # c00 oznacza to samo, co # cc0000 lub 204 , 0,0, rozszerzony na # cccc00000000).

Wartości 32-bitowe zwykle używają ostatniego bajtu dla kanału alfa (przezroczystość). Sądzę, że możliwe jest, że wartości 48-bitowe wykorzystują 24-bitowe kolory z niezależną alfa na kolor, ale podane przykłady nie obsługują tego.

AdamV
źródło