Warna asli [24-bit] di Wikipedia dijelaskan sebagai bagian yang terkait 24 bit hampir selalu
menggunakan 8 bit dari masing-masing R, G, B. Pada 2018, kedalaman warna 24-bit digunakan oleh hampir setiap komputer dan tampilan telepon dan sebagian besar format penyimpanan gambar. Hampir semua kasus di mana ada 32 bit per piksel berarti 24 digunakan untuk warna, dan 8 sisanya adalah saluran alfa atau tidak digunakan. 2 24 menghasilkan 16.777.216 variasi warna. Mata manusia dapat membedakan hingga sepuluh juta warna
[10] dan karena gamut layar lebih kecil dari kisaran penglihatan manusia, ini berarti ini harus mencakup kisaran itu dengan lebih detail daripada yang dapat dirasakan. ... ... Sistem Macintosh menyebut warna 24-bit sebagai "jutaan warna". Istilah "True color" kadang-kadang digunakan untuk arti apa yang disebut artikel ini "warna
langsung". [13] Ia juga sering digunakan untuk merujuk pada semua kedalaman warna yang lebih besar atau sama dengan 24.
Semua 16.777.216 warna
Tugas
Tulis sebuah program yang menghasilkan dan mengembalikan semua 16.777.216 variasi warna dalam sebuah
array sebagai string dalam rgb[]
fungsi CSS
5.1. Fungsi RGB:
rgb[]
danrgba[]
The
rgb[]
Fungsi mendefinisikan warna RGB dengan menentukan saluran merah, hijau, dan biru secara langsung. Sintaksnya adalah:rgb[] = rgb[ {3} [ / ]? ] | rgb[ {3} [ / ]? ] = |
Tiga argumen pertama menentukan saluran merah, hijau, dan biru warna, masing-masing.
0%
mewakili nilai minimum untuk saluran warna dalam gamut sRGB, dan100%
mewakili nilai maksimum. Asama dengan a
, tetapi dengan rentang yang berbeda:
0
sekali lagi mewakili nilai minimum untuk saluran warna, tetapi255
mewakili maksimum. Nilai-nilai ini berasal dari fakta bahwa banyak mesin grafis menyimpan saluran warna secara internal sebagai satu byte, yang dapat menyimpan bilangan bulat antara 0 dan 255. Implementasi harus menghormati ketepatan saluran sebagaimana ditulis atau dihitung sedapat mungkin. Jika ini tidak memungkinkan, saluran harus dibulatkan ke nilai terdekat pada presisi tertinggi yang digunakan, mengumpulkan jika dua nilai sama-sama dekat.Argumen terakhir, the
, menentukan alfa warna. Jika diberikan sebagai a
, kisaran nilai yang berguna adalah
0
[mewakili warna yang sepenuhnya transparan] hingga1
[mewakili warna yang sepenuhnya buram]. Jika diberikan sebagai,0%
mewakili warna sepenuhnya transparan, sementara100%
mewakili warna sepenuhnya buram. Jika dihilangkan, defaultnya adalah100%
.Nilai di luar rentang ini tidak valid, tetapi dijepit ke rentang yang ditentukan di sini pada waktu nilai-dihitung.
Untuk alasan sebelumnya,
rgb[]
juga mendukung sintaks alternatif yang memisahkan semua argumennya dengan koma:rgb[] = rgb[ #{3} , ? ] | rgb[ #{3} , ? ]
Juga karena alasan warisan, suatu
rgba[]
fungsi juga ada, dengan tata bahasa dan perilaku yang identik dengannyargb[]
.
atau
#RRGGBB
format notasi heksadesimal RGB
5.2. Notasi heksadesimal RGB:
#RRGGBB
Notasi warna heks CSS memungkinkan warna ditentukan dengan memberikan saluran sebagai angka heksadesimal, yang mirip dengan bagaimana warna sering ditulis langsung dalam kode komputer. Ini juga lebih pendek daripada menulis warna yang sama dalam
rgb[]
notasi.Sintaks dari a
adalah
token yang nilainya terdiri dari 3, 4, 6, atau 8 digit heksadesimal. Dengan kata lain, warna heksa ditulis sebagai karakter hash, "#", diikuti oleh beberapa angka 0-9 atau huruf af [huruf huruf tidak masalah -
#00ff00
identik dengan#00FF00
].Jumlah digit hex yang diberikan menentukan cara mendekode notasi hex menjadi warna RGB:
6 digit
Pasangan digit pertama, ditafsirkan sebagai angka heksadesimal, menentukan saluran merah warna, di mana
00
merupakan nilai minimum danff
[255 dalam desimal] mewakili maksimum. Pasangan digit berikutnya, ditafsirkan dengan cara yang sama, menentukan saluran hijau, dan pasangan terakhir menentukan biru. Saluran alfa warna sepenuhnya buram.CONTOH 2
Dengan kata lain,#00ff00
mewakili warna yang sama denganrgb[0 255 0]
[hijau limau].
Lihat Draf Editor Modul Warna CSS Level 4
Contohnya
rgb[]
Fungsi CSS [ karakter spasi dapat diganti dengan karakter koma, misalnya, rgb[0 255 0]
]
// `rgb[]` `` as strings in resulting array
['rgb[0%,0%,0%]', ...,'rgb[0%,255%,0]', ...'rgb[255,255,255]']
// `rgb[]` `` as strings in resulting array
['rgb[0,0,0]', ...,'rgb[0,255,0]', ...'rgb[255,255,255]']
CSS RGB notasi
heksadesimal RRGGBB
// RGB hexadecimal notation as strings in resulting array
['#000000', ...,'#00ff00', ...'#ffffff']
Kriteria menang
Bit terkecil digunakan untuk menulis program.
Jawaban:
Python 2 , 77 40 39 37 byte
print['#%06X'%c for c in range[8**8]]
Cobalah online!
-1 byte berkat Digital Trauma
-2 byte terima kasih kepada dylnan
PowerShell , 28 26 byte
1..16mb|%{"#{0:x6}"-f--$_}
Cobalah online!
Loop dari 1
ke 16mb
[16777216]. Setiap iterasi, kami menggunakan -f
operator ormat yang
bekerja pada nomor saat ini yang telah ditentukan sebelumnya --$_
terhadap string "#{0:x6}"
. Di sini, kami menentukan x
nilai dia , diisi 6
digit, dengan hash #
di depan. Pada TIO, output dibatasi hingga 60 detik / 128KiB. Ubah 1
to [16mb-5]
untuk melihat bagaimana itu
berakhir .
JavaScript [ES7], 65 62 61 byte
Disimpan 3 4 byte berkat @tsh
Mengembalikan array #RRGGBB
string.
_=>[...Array[n=8**8]].map[_=>'#'+[n++].toString[16].slice[1]]
Cobalah online! [keluaran terpotong]
Gangguan Umum, 42 byte
[dotimes[i 16777216][format t"#~6,'0x "i]]
Cobalah online!
Japt, 14 byte
Output sebagai #rrggbb
.
G²³ÇsG ùT6 i'#
Cobalah [Terbatas pada 4096 elemen pertama]
Penjelasan
G :16
² :Squared
³ :Cubed
Ç :Map the range [0,result]
sG : Convert to base-16 string
ù : Left pad
T : With 0
6 : To length 6
i'# : Prepend "#"
05AB1E , 15 14 10 byte
15Ýh6ãJ'#ì
Cobalah online.
Penjelasan:
15Ý # Create a list in the range [0, 15]
h # Convert each to a hexadecimal value
6ã # Create each possible sextuple combination of the list
J # Join them together to a single string
'#ì # And prepend a "#" before each of them
Batch, 87 byte
@set s= in [0,1,255]do @
@for /l %%r%s%for /l %%g%s%for /l %%b%s%echo rgb[%%r,%%g,%%b]
Output dalam format CSS.
Substitusi variabel terjadi sebelum for
pernyataan diuraikan sehingga kode aktualnya adalah sebagai berikut:
@for /l %%r in [0,1,255]do @for /l %%g in [0,1,255]do @for /l %%b in [0,1,255]do @echo rgb[%%r,%%g,%%b]
C # [.NET Core] , 75 byte
[]=>{int i=1