Penggunaan fungsi TRUECOLOR pada PHP

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, dan 100%mewakili nilai maksimum. A sama dengan a , tetapi dengan rentang yang berbeda: 0sekali lagi mewakili nilai minimum untuk saluran warna, tetapi255mewakili 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] hingga 1[mewakili warna yang sepenuhnya buram]. Jika diberikan sebagai, 0%mewakili warna sepenuhnya transparan, sementara 100%mewakili warna sepenuhnya buram. Jika dihilangkan, defaultnya adalah 100%.

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 dengannya rgb[].

atau #RRGGBBformat 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 - #00ff00identik 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 00merupakan nilai minimum dan ff[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, #00ff00mewakili warna yang sama dengan rgb[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 1ke 16mb[16777216]. Setiap iterasi, kami menggunakan -foperator ormat yang bekerja pada nomor saat ini yang telah ditentukan sebelumnya --$_terhadap string "#{0:x6}". Di sini, kami menentukan xnilai dia , diisi 6digit, dengan hash #di depan. Pada TIO, output dibatasi hingga 60 detik / 128KiB. Ubah 1to [16mb-5]untuk melihat bagaimana itu berakhir .

JavaScript [ES7], 65 62 61 byte

Disimpan 3 4 byte berkat @tsh

Mengembalikan array #RRGGBBstring.

_=>[...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 forpernyataan 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

Bài mới nhất

Chủ Đề