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:0ponownie reprezentuje minimalną wartość dla kanału koloru, ale255reprezentuje 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 #RRGGBBformacie RGB
5.2 Notacje szesnastkowe RGB:
#RRGGBBNotacja 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 -#00ff00jest 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
00reprezentuje 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,#00ff00reprezentuje 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.