Kuo šis puslapis skiriasi nuo kitų spalvų konvertavimo įrankių
Spalvų konvertavimo įrankių internete – gausybė, tačiau šis puslapis buvo sukurtas atsižvelgiant į konkrečią dizainerių ir kūrėjų praktiką. Pagrindinė idėja – įvesti spalvą HSL modeliu (atspalvis, sodrumas, šviesumas) ir akimirksniu gauti jos RGB atitikmenį, taip pat dar penkis kitus spalvų kodus. HSL modelis yra specialiai sukurtas žmogaus mąstymui apie spalvas: pakeitus šviesumą, atspalvis lieka nepakitęs. Tai reiškia, kad galite kurti spalvų paletes, pavyzdžiui, tamsinti ar šviesinti spalvą neprarasdami jos tono – kaip tik tai daroma, kai generuojate temos spalvas ar šešėlius. RGB, priešingai, yra ekrano darbo erdvė – tikslūs skaičiai, kuriuos monitorius naudoja šviesai spinduliuoti. Šis puslapis tampa tiltu tarp šių dviejų pasaulių.
Svarbiausias skirtumas – konversija yra nenuostolinga (lossless). Kiekviena galiojanti HSL reikšmė atitinka tiksliai vieną RGB trijulę, esančią rodomame diapazone (0–255). Priešingai nei konvertuojant iš LAB ar CMYK į RGB, čia nėra jokio spalvų diapazono (gamut) apkarpymo – spalva nepasikeis konvertuojant atgal. Taip pat nėra jokių spalvų poslinkių, kurie kiltų dėl skirtingų profilių. Štai kodėl šis įrankis idealiai tinka, kai reikia perkelti spalvą iš dizaino įrankio (kuris dažnai naudoja HSL) į CSS ar kitą kodą, kuris laukia RGB.
Kaip veikia HSL į RGB konversija
HSL modelis apibrėžia spalvą trimis komponentais: atspalvis (hue), sodrumas (saturation) ir šviesumas (lightness). Atspalvis matuojamas laipsniais nuo 0 iki 360 – tai spalvų ratas. Sodrumas ir šviesumas pateikiami procentais nuo 0% iki 100%. Pvz., įvedę 243, 75%, 59%, gauname RGB reikšmes 79, 70, 229.
Konversijos algoritmas nėra sudėtingas, tačiau jis remiasi standartine sRGB erdvės matematika. Jei šviesumas yra mažesnis arba lygus 50%, spalva yra tamsi; jei didesnis – šviesi. Šviesumui esant 0%, RGB visada yra (0, 0, 0); esant 100% – (255, 255, 255). Sodrumui esant 0%, gaunama pilka spalva, kurioje visi trys RGB kanalai lygūs šviesumo procentui, pakeistam į 0–255 skalę. Tai padeda greitai patikrinti, ar spalva yra neutrali.
Tikslus algoritmas naudoja tarpines reikšmes, vadinamas chroma (spalvos grynumas) ir hue segmentu. Chroma apskaičiuojamas pagal šviesumo ir sodrumo derinį. Tada pagal atspalvio kampą nustatoma, kuriame spalvų rato segmente (0–60, 60–120, 120–180 ir t.t.) yra spalva, ir atitinkamai priskiriami RGB kanalai. Galiausiai prie kiekvieno kanalo pridedama šviesumo korekcija (lightness adjustment), kad būtų gauta galutinė RGB reikšmė 0–255 intervale. Ši matematinė operacija yra tiesioginė ir standartizuota, todėl rezultatas visada tikslus.
Pavyzdys: norime konvertuoti HSL(0, 100%, 50%) – tai gryna raudona. Atspalvis 0°, sodrumas 100%, šviesumas 50%. Chroma apskaičiuojama kaip (1 - |2*0.5 - 1|) * 1 = 1. Kadangi atspalvis yra 0°, RGB kanalai bus (1, 0, 0) skalėje 0–1, o po konversijos į 0–255: (255, 0, 0). Taip, tai tiesiog raudona spalva.
Kokius kitus spalvų modelius rodo šis įrankis
Be HSL ir RGB, puslapis akimirksniu pateikia dar penkis spalvų kodus. Kiekvienas jų turi skirtingą pritaikymą:
| Spalvų modelis | Pritaikymas |
|---|---|
| HEX | Šešioliktainis kodas, plačiai naudojamas CSS, HTML, grafinėse programose. Pvz., #4F46E5. |
| RGB | Ekrano spalvų erdvė – tikslūs raudonos, žalios ir mėlynos šviesos intensyvumai 0–255. |
| HSL | Žmogaus intuicijai pritaikytas modelis – atspalvis, sodrumas, šviesumas. |
| HSV | Kitas modelis, panašus į HSL, bet šviesumo vietoje naudoja vertę (value). Naudingas renkantis ryškias spalvas. |
| CMYK | Keturių spalvų modelis (cianas, purpurinė, geltona, juoda), naudojamas spausdinimui. Šis įrankis pateikia apytikslį vertimą. |
| LAB | CIE Lab* – spalvų modelis, orientuotas į žmogaus regėjimo suvokimą. Naudingas spalvų skirtumų analizei. |
Kiekvienas iš šių modelių yra apskaičiuojamas tiesiogiai jūsų naršyklėje – niekas, ką įvedate, nėra siunčiama į serverį. Tai reiškia, kad galite saugiai konvertuoti bet kokias spalvas, net jei dirbate su konfidencialiais projektais.
Kraštiniai atvejai ir praktiniai apribojimai
Kaip ir bet kuris spalvų konvertavimo įrankis, šis turi keletą taisyklių, kurias verta žinoti. Jei įvesite neteisingai suformatuotą HSL reikšmę, pvz., 243, 75, 59 (be procentų sodrumui ir šviesumui), puslapis parodys klaidą: "Enter HSL as hue 0–360 with two percentages, like 243, 75%, 59%." Tai padeda išvengti nesusipratimų, nes dažnai pradedantieji pamiršta procentų ženklą.
Kitas svarbus aspektas – CMYK vertimas. Jis yra apytikslis ir gali skirtis nuo verčių, naudojamų profesionalioje spaudoje. Priežastis ta, kad CMYK spalvos priklauso nuo konkrečių dažų, popieriaus ir spausdintuvo profilio. Monitorius naudoja RGB modelį, o spausdinimas – subtraktyvųjį CMYK modelį, todėl konversija niekada nėra 100% tiksli. Jei reikia tikslios spalvos spaudai, geriau naudoti specializuotą spalvų valdymo programinę įrangą, pvz., ICC profilius.
HSL diapazone nėra jokių spalvų už ribų (out-of-gamut) – kiekviena galiojanti HSL reikšmė atitinka RGB ekrano erdvę. Tai skiriasi nuo, pavyzdžiui, LAB arba RGB į CMYK konversijos, kur kai kurios spalvos nepatenka į RGB ar CMYK diapazoną ir yra apkarpomos. Dėl šios priežasties konvertuojant HSL į RGB ir atgal galima gauti identiškas reikšmes be jokių poslinkių.
Dažniausiai užduodami klausimai
Kodėl HSL modelis yra „žmogiškesnis“ nei RGB?
HSL specialiai sukurtas taip, kad būtų intuityvus: keičiant šviesumą, atspalvis išlieka tas pats. Tai leidžia lengvai kurti spalvų paletes, pavyzdžiui, tamsinti raudoną spalvą nekeičiant jos tono. RGB, priešingai, reikalauja vienu metu keisti tris skaičius, kad būtų išlaikyta spalvų harmonija.
Ką daryti, jei mano HSL reikšmė neturi procentų?
Puslapis priima tik tinkamą formatą: atspalvį 0–360, sodrumą kaip procentą (pvz., 75%) ir šviesumą kaip procentą. Jei pamiršote %, įrankis parodys klaidą. Tiesiog pridėkite procentų ženklą prie sodrumo ir šviesumo – pvz., 243, 75%, 59%.
Ar ši konversija tinka profesionaliems spausdinimo darbams?
Ne visai. CMYK vertė, kurią pateikia įrankis, yra apytikslė ir gali skirtis priklausomai nuo spausdintuvo, popieriaus ir dažų. Profesionalioje spaudoje naudojami konkretūs ICC profiliai, todėl šią reikšmę reikėtų vertinti kaip orientacinę.
Kodėl RGB reikšmės yra 0–255, o ne, pvz., 0–1?
Tai yra standartinis 8 bitų kanalo gylis, naudojamas daugumoje ekranų ir vaizdo formatų. 0–255 skalė atitinka 256 skirtingus intensyvumo lygius kiekvienai spalvai (raudonai, žaliai, mėlynai). Ši skalė yra paplitusi CSS, HTML, grafinėse programose ir daugelyje programavimo kalbų.
Ar galiu naudoti šį įrankį nespalvotoms (pilkos skalės) spalvoms?
Taip. Įvedus sodrumą 0%, gaunama pilka spalva, kurios šviesumas reguliuoja atspalvį nuo juodos (šviesumas 0%) iki baltos (šviesumas 100%). Pvz., HSL(0, 0%, 50%) yra vidutinė pilka spalva, kuri RGB būtų (128, 128, 128). Atspalvis neturi reikšmės, kai sodrumas lygus 0%.
Kiek laiko užtrunka konversija?
Visi skaičiavimai atliekami akimirksniu jūsų naršyklėje. Nėra jokio delsimo, nes duomenys nesiunčiami į serverį. Tai ypač naudinga, kai reikia greitai peržiūrėti kelias spalvas arba dirbti su daugybe įvesties.