Bagaimana Menjana Warna Bertentangan Warna Yang Diberikan?
Mencipta Warna Bertentangan Warna Yang Diberi
Dalam masalah ini, matlamatnya adalah untuk menghasilkan warna yang bertentangan dengan warna yang diberikan warna. Warna bertentangan merujuk kepada aspek gelap/terang. Sebagai contoh, jika warna yang diberikan adalah hitam, warna bertentangan akan menjadi putih.
Untuk mencipta warna bertentangan ini, fungsi bernama create_opp_color() diperlukan. Fungsi ini harus menerima warna semasa sebagai hujah dan mengembalikan warna yang bertentangan. Begini cara untuk mendekati tugasan ini:
Pelaksanaan Fungsi:
- Tukar HEX kepada RGB: Warna yang diberikan diandaikan berada dalam Format HEX. Mula-mula, tukarkannya kepada komponen RGB.
- Terbalikkan Komponen Warna: Terbalikkan nilai komponen R, G dan B (tolak daripada 255).
- Tukar Komponen Terbalik kepada HEX: Tukarkan semula setiap komponen terbalik kepada nilai HEX.
- Komponen Terbalik Pad: Setiap komponen HEX hendaklah berlapik dengan sifar untuk memastikan ia adalah 2 digit Nilai HEX.
- Bina Semula Rentetan Warna HEX: Satukan komponen HEX berlapik untuk membentuk rentetan warna yang bertentangan.
Pelaksanaan dalam JavaScript:
function create_opp_color(currentColor) { if (currentColor.indexOf('#') === 0) { currentColor = currentColor.slice(1); } if (currentColor.length === 3) { currentColor = currentColor.repeat(2); } const rgb = hexToRgb(currentColor); const invertedRgb = { r: 255 - rgb.r, g: 255 - rgb.g, b: 255 - rgb.b }; const invertedHex = rgbToHex(invertedRgb); return '#' + invertedHex; } function rgbToHex(rgb) { let hex = ''; for (const key in rgb) { if (rgb.hasOwnProperty(key)) { const component = rgb[key].toString(16); hex += component.length === 1 ? '0' + component : component; } } return hex; } function hexToRgb(hex) { let rgb = {}; ['r', 'g', 'b'].forEach((key, i) => { rgb[key] = parseInt(hex.substr(i * 2, 2), 16); }); return rgb; }
Teknik Lanjutan:
Jika anda memerlukan lebih kontras, anda boleh menggunakan hitam atau putih sebagai warna bertentangan berdasarkan kecerahan warna asal. Berikut ialah fungsi yang diubah suai untuk melakukannya:
function create_opp_color(currentColor) { if (currentColor.indexOf('#') === 0) { currentColor = currentColor.slice(1); } if (currentColor.length === 3) { currentColor = currentColor.repeat(2); } const rgb = hexToRgb(currentColor); const brightness = Math.round((rgb.r * 0.299 + rgb.g * 0.587 + rgb.b * 0.114) / 255 * 100); return brightness > 50 ? '#000000' : '#FFFFFF'; }
Kini, menggunakan fungsi ini, anda boleh menjana warna bertentangan dengan mana-mana warna tertentu, sama ada cerah atau gelap.
Atas ialah kandungan terperinci Bagaimana Menjana Warna Bertentangan Warna Yang Diberikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



API Peralihan Svelte menyediakan cara untuk menghidupkan komponen apabila mereka memasuki atau meninggalkan dokumen, termasuk peralihan svelte adat.

Sekiranya anda baru -baru ini mula bekerja dengan GraphQL, atau mengkaji semula kebaikan dan keburukannya, anda tidak akan ragu -ragu mendengar perkara seperti "Graphql tidak menyokong caching" atau

Berapa banyak masa yang anda habiskan untuk merancang persembahan kandungan untuk laman web anda? Semasa anda menulis catatan blog baru atau membuat halaman baru, adakah anda memikirkan

Dengan pendakian harga bitcoin baru -baru ini lebih dari 20k $ USD, dan baru -baru ini melanggar 30k, saya fikir ia patut mengambil menyelam yang mendalam kembali ke dalam mewujudkan Ethereum

Tidak kira tahap tahap anda sebagai pemaju, tugas yang kami selesaikan -sama ada besar atau kecil -membuat kesan besar dalam pertumbuhan peribadi dan profesional kami.

Ia ' s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Perintah NPM menjalankan pelbagai tugas untuk anda, sama ada sebagai satu-satunya atau proses berjalan terus untuk perkara seperti memulakan pelayan atau menyusun kod.
