Prawdziwy kolor (24 bity) w Wikipedii jest opisany w odpowiedniej części jako
24 bity prawie zawsze wykorzystuje 8 bitów każdego z R, G, B. Od 2018 r. 24-bitowa głębia kolorów jest używana przez praktycznie każdy wyświetlacz komputera i telefonu oraz zdecydowaną większość formatów przechowywania obrazów. Prawie wszystkie przypadki, w których 32 piksele mają piksel, oznaczają, że 24 są użyte dla koloru, a pozostałe 8 to kanał alfa lub nieużywane.
2 24 daje 16 777 216 wariantów kolorystycznych. Ludzkie oko może rozróżnić do dziesięciu milionów kolorów [10], a ponieważ gama wyświetlacza jest mniejsza niż zasięg widzenia ludzkiego, oznacza to, że powinien on obejmować ten zakres bardziej szczegółowo, niż można to dostrzec. ...
...
Systemy Macintosh określają kolory 24-bitowe jako „miliony kolorów”. Termin „prawdziwy kolor” jest czasem używany w znaczeniu tego, co ten artykuł nazywa „kolorem bezpośrednim”. [13] Jest również często stosowany w odniesieniu do wszystkich głębi kolorów większych lub równych 24.
Wszystkie 16 777 216 kolorów
Zadanie
Napisz program, który generuje i zwraca wszystkie 16 777 216 wariantów kolorów w tablicy jako ciągi znaków w rgb()
funkcji CSS
5.1 Funkcje RGB:
rgb()
irgba()
rgb()
Funkcja definiuje koloru RGB określając czerwone, zielone i niebieskie kanały bezpośrednio. Jego składnia to:rgb() = rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? ) <alpha-value> = <number> | <percentage>
Pierwsze trzy argumenty określają odpowiednio czerwony, zielony i niebieski kanał koloru.
0%
reprezentuje minimalną wartość dla tego kanału kolorów w gamie sRGB i100%
reprezentuje wartość maksymalną. A<number>
jest równoważne a<percentage>
, ale z innym zakresem:0
ponownie reprezentuje minimalną wartość dla kanału koloru, ale255
reprezentuje maksimum. Wartości te wynikają z faktu, że wiele silników graficznych przechowuje kanały kolorów wewnętrznie jako jeden bajt, który może pomieścić liczby całkowite od 0 do 255. Implementacje powinny honorować precyzję kanału, jeśli jest to możliwe lub obliczone. Jeśli nie jest to możliwe, kanał należy zaokrąglić do najbliższej wartości z najwyższą zastosowaną precyzją, zaokrąglając w górę, jeśli dwie wartości są jednakowo bliskie.Ostatni argument, the
<alpha-value>
, określa alfa koloru. Jeśli podano jako a<number>
, użyteczny zakres wartości to0
(reprezentujący całkowicie przezroczysty kolor) do1
(reprezentujący całkowicie nieprzezroczysty kolor). Jeśli podany jako a,0%
reprezentuje całkowicie przezroczysty kolor, a100%
reprezentuje całkowicie nieprzezroczysty kolor. Jeśli zostanie pominięty, domyślnie jest to100%
.Wartości poza tymi zakresami nie są nieprawidłowe, ale są ograniczone do zakresów zdefiniowanych tutaj w czasie wartości obliczonej.
Ze względów starszych
rgb()
obsługuje także alternatywną składnię, która oddziela wszystkie argumenty przecinkami:rgb() = rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )
Również ze względów starszych
rgba()
istnieje również funkcja o identycznej gramatyce i zachowaniurgb()
.
lub zapis szesnastkowy w #RRGGBB
formacie RGB
5.2 Notacje szesnastkowe RGB:
#RRGGBB
Notacja koloru szesnastkowego CSS pozwala określić kolor, podając kanały jako liczby szesnastkowe, co jest podobne do tego, jak często kolory zapisywane są bezpośrednio w kodzie komputerowym. Jest także krótszy niż zapisywanie tego samego koloru w
rgb()
notacji.Składnia a
<hex-color>
to<hash-token>
token, którego wartość składa się z 3, 4, 6 lub 8 cyfr szesnastkowych. Innymi słowy, kolor szesnastkowy jest zapisany jako znak skrótu „#”, po którym następuje pewna liczba cyfr 0–9 lub liter af (wielkość liter nie ma znaczenia -#00ff00
jest identyczna#00FF00
).Podana liczba cyfr szesnastkowych określa sposób dekodowania zapisu szesnastkowego na kolor RGB:
6 cyfr
Pierwsza para cyfr, interpretowana jako liczba szesnastkowa, określa czerwony kanał koloru, gdzie
00
reprezentuje wartość minimalną, aff
(255 w systemie dziesiętnym) reprezentuje maksimum. Następna para cyfr, interpretowana w ten sam sposób, określa zielony kanał, a ostatnia para określa niebieski. Kanał alfa koloru jest całkowicie nieprzejrzysty.PRZYKŁAD 2
Innymi słowy,#00ff00
reprezentuje ten sam kolor corgb(0 255 0)
(limonkowy).
Zobacz szkic edytora CSS Moduł kolorów poziom 4
Przykłady
rgb()
Funkcja CSS ( znak spacji można zastąpić przecinkiem, np. rgb(0 255 0)
)
// `rgb()` `<percentage>` as strings in resulting array
['rgb(0%,0%,0%)', ...,'rgb(0%,255%,0)', ...'rgb(255,255,255)']
// `rgb()` `<number>` as strings in resulting array
['rgb(0,0,0)', ...,'rgb(0,255,0)', ...'rgb(255,255,255)']
Notacja szesnastkowa CSS RGB RRGGBB
// RGB hexadecimal notation as strings in resulting array
['#000000', ...,'#00ff00', ...'#ffffff']
Kryteria wygranej
Najmniej bajtów użytych do napisania programu.