Išspręsta: javascript hex į rgb

Pagrindinė problema konvertuojant šešioliktaines spalvų reikšmes į RGB yra ta, kad tarp dviejų formatų nėra tiesioginio atitikimo. Pavyzdžiui, spalva #FF0000 RGB pavaizduota kaip 255, 0, 0, bet šešioliktaine spalva ji būtų lygi #F0 spalvai. Tai reiškia, kad dvi skirtingos spalvos gali turėti tą pačią RGB reikšmę, jei jas sudaro skirtingi kiekvienos spalvos komponento kiekiai.

"use strict";

function hexToRgb(hex) {
    var result = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
    return result ? {
        r: parseInt(result[1], 16),
        g: parseInt(result[2], 16),
        b: parseInt(result[3], 16)
    } : null;
}

„Naudoti griežtai“;

Ši kodo eilutė įgalina griežtą režimą, kuris yra būdas parašyti geresnį „JavaScript“. Griežtu režimu negalite naudoti nedeklaruotų kintamųjų. Ši kodo eilutė turi būti „JavaScript“ failo viršuje, kad veiktų griežtas režimas.

function hexToRgb(hex) {
var rezultatas = /^#?([a-fd]{2})([a-fd]{2})([a-fd]{2})$/i.exec(hex);
grąžinti rezultatą? {
r: parseInt(rezultatas[1], 16),
g: parseInt(rezultatas[2], 16),
b: parseInt(rezultatas[3], 16)
} : null;
}

Tai funkcija, konvertuojanti šešioliktainę spalvos reikšmę į RGB spalvos reikšmę. Funkcija paima vieną parametrą, ty šešioliktainę spalvos reikšmę, kurią norite konvertuoti. Funkcija naudoja reguliariąją išraišką, kad atitiktų šešioliktainės spalvos reikšmės šabloną, o jei randa atitiktį, ji grąžins objektą su raudona, žalia ir mėlyna reikšmėmis. Jei jis neranda atitikmens, jis grąžins nulį.

Konversija tarp spalvų

Į šį klausimą nėra vienareikšmio atsakymo, nes geriausias būdas konvertuoti spalvas tarp skirtingų spalvų erdvių gali skirtis priklausomai nuo konkrečių jūsų programos poreikių. Tačiau kai kuriuos patarimus, kaip konvertuoti spalvas tarp spalvų tarpų „JavaScript“, rasite toliau.

Norėdami konvertuoti spalvą iš vienos spalvų erdvės į kitą, galite naudoti rgb() ir hsl() funkcijas. Šios funkcijos turi tris argumentus: atitinkamai raudoną, žalią ir mėlyną reikšmę. Pirmasis argumentas nurodo bazinę spalvų erdvę (pvz., RGB), o antrasis ir trečiasis – tikslinę spalvų erdvę (pvz., HSL).

Norėdami konvertuoti spalvą iš vieno pikselių formato į kitą, galite naudoti funkciją css(). Ši funkcija turi du argumentus: eilutę, vaizduojančią CSS ypatybės pavadinimą (pvz., "spalva") ir skaičių, nurodantį pageidaujamą tos ypatybės reikšmę (pvz., "50").

Spalvų formatai

Yra keletas skirtingų spalvų formatų, kuriuos galite naudoti „JavaScript“.

RGB – raudona, žalia, mėlyna

HEX – #RRGBB

HSL – atspalvis, sodrumas, lengvumas

Susijusios naujienos:

Palikite komentarą