Spalvų parinkimo įrankis - Konvertuoti RGB, Hex, CMYK ir HSV spalvų kodus
Nemokamas internetinis spalvų parinkimo įrankis su momentine RGB, Hex, CMYK ir HSV konversija. Spustelėkite spektrą, kad vizualiai pasirinktumėte spalvas, arba įveskite tikslias reikšmes. Vienu paspaudimu nukopijuokite bet kokį formatą žiniatinklio dizainui, spaudai ir skaitmeniniams projektams.
Spalvų parinkėjas
RGB (0-255)
CMYK (0-100)
Spalvų parinkėjas
Dokumentacija
Ką Galite Padaryti Su Šiuo Spalvų Parinkėju
Reikia tobulos atspalvio savo projektui? Šis spalvų parinkėjas leidžia jums pasirinkti, peržiūrėti ir konvertuoti spalvas tarp RGB, Hex, CMYK ir HSV formatų akimirksniu. Nesvarbu, ar kuriate svetainę, projektuojate logotipą, ar ruošiate failus spaudai, rasite tiksliai tas spalvų reikšmes, kurių jums reikia – be spėliojimų, be perjungimo tarp įrankių.
Spustelėkite bet kur spalvų spektre, kad pasirinktumėte atspalvį, reguliuokite ryškumą slankikliu arba tiesiogiai įveskite tikslias reikšmes. Kiekvienas formatas atnaujinamas realiu laiku, ir bet kurį spalvos kodą galite nukopijuoti vienu paspaudimu.
Spalvų modelių supratimas
Skirtingi projektai reikalauja skirtingų spalvų formatų. Štai ką kiekvienas jų daro ir kada naudoti:
RGB (Raudona, Žalia, Mėlyna)
RGB veikia maišant raudoną, žalią ir mėlyną šviesą — taip pat, kaip jūsų ekranas rodo spalvas šiuo metu. Kiekvienas komponentas svyruoja nuo 0 iki 255:
- RGB(255, 0, 0) = gryna raudona
- RGB(0, 255, 0) = gryna žalia
- RGB(0, 0, 255) = gryna mėlyna
- RGB(255, 255, 255) = balta
- RGB(0, 0, 0) = juoda
Kada naudoti RGB: Bet kokiame skaitmeniniame darbe — svetainėse, mobiliose programėlėse, vaizdo redagavime ar ekrane pagrįstoje grafikoje. Tai yra įrenginių gimtoji kalba, todėl įrankiai kaip CSS tiesiogiai palaiko rgb() ir rgba() funkcijas. Pagal W3C CSS spalvų modulio specifikaciją, RGB yra pagrindinis spalvų modelis žiniatinklio standartams.
Šešioliktainis (Hex)
Hex kodai yra tiesiog RGB reikšmės, užrašytos šešioliktainėje sistemoje vietoj dešimtainės. Hex spalva atrodo kaip #FF5733, kur:
#simbolis žymi, kad tai hex kodas- Pirmi du ženklai = raudona (00-FF)
- Viduriniai du = žalia (00-FF)
- Paskutiniai du = mėlyna (00-FF)
#FF0000= raudona,#00FF00= žalia,#0000FF= mėlyna
Kartais pamatysite 3 ženklų sutrumpinimą, pvz., #F00 vietoj #FF0000 — tai veikia, kai kiekviename spalvos kanale kartojasi tas pats skaitmuo.
Kada naudoti Hex: Pagrindinė naudojimo sritis yra žiniatinklio kūrimas. CSS visada palaikė hex užrašymą, ir dauguma kūrėjų randa jį greitesniu nei rgb(). Dažna klaida: pamiršus # simbolį, stiliai suges tyliai, nes naršyklės jo nepripažins kaip galiojančios spalvos.
CMYK (Cianas, Magenta, Geltona, Raktas/Juoda)
CMYK yra spalvų modelis, naudojamas spausdintuvuose. Kitaip nei RGB (kuris prideda šviesą), CMYK ją atima — maišant dažus baltame popieriuje:
- Kiekvienas komponentas svyruoja nuo 0% iki 100%
- CMYK(0, 100, 100, 0) = raudona
- CMYK(100, 0, 100, 0) = žalia
- CMYK(0, 0, 0, 100) = gryna juoda dažų spalva
- CMYK(0, 0, 0, 0) = be dažų (matosi baltas popierius)
Kada naudoti CMYK: Projektams spaudai — verslo kortelėms, lankstinukams, žurnalams, pakuotėms. Štai realybės patikrinimas: daugelis ryškių RGB spalvų tiesiog negali būti atkurtos CMYK dažais. Tas ryškus elektrinis mėlynas, kurį matote ekrane? Spausdinant jis atrodys blankesnis. Profesionalūs dizaineriai visada peržiūri CMYK konversijas prieš siunčiant failus spausdinimui, kad išvengtų netikėtumų.
HSV (Atspalvis, Sodrumas, Reikšmė)
HSV išskaido spalvą į tris intuityvius komponentus:
- Atspalvis: Kuris spalvos šeimos (0-360°) — 0° yra raudona, 120° yra žalia, 240° yra mėlyna
- Sodrumas: Kiek gyvas ar pilkas (0-100%) — 0% yra pilkaspalvis, 100% yra visiškai sodrūs
- Reikšmė: Kiek šviesus ar tamsus (0-100%) — 0% yra juoda, 100% yra visiška šviesa
Kodėl HSV svarbus: Jis atitinka tai, kaip žmonės natūraliai mąsto apie spalvą. Norite tamsesnės mėlynos? Sumažinkite reikšmę. Norite mažiau intensyvios mėlynos? Sumažinkite sodrumą. Dėl to HSV yra idealus interaktyviems spalvų parinkėjams, kur jūs pasirenkate atspalvį spektre ir reguliuojate šviesumą slankikliu.
Spalvų Konvertavimo Formulės
Spalvų parinkiklis automatiškai konvertuoja tarp skirtingų spalvų modelių naudodamas šias matematines formules:
RGB į Hex Konvertavimas
Norint konvertuoti RGB į šešioliktainę sistemą:
- Konvertuoti kiekvieną RGB komponentą (0-255) į dviejų skaitmenų šešioliktainį skaičių
- Sujungti tris šešioliktainius verčių su # priešdėliu
Kur toHex() konvertuoja dešimtainį skaičių į jo šešioliktainę reprezentaciją.
RGB į CMYK Konvertavimas
Konvertavimas iš RGB į CMYK apima šiuos žingsnius:
- Normalizuoti RGB vertes į 0-1 intervalą
- Apskaičiuoti juodą pagrindinį (K) komponentą
- Apskaičiuoti C, M ir Y pagal K
RGB į HSV Konvertavimas
Konvertuojant RGB į HSV:
Atspalviui (H):
0° & \text{jei } \Delta = 0 \\ 60° \times (\frac{G' - B'}{\Delta} \mod 6) & \text{jei } C_{max} = R' \\ 60° \times (\frac{B' - R'}{\Delta} + 2) & \text{jei } C_{max} = G' \\ 60° \times (\frac{R' - G'}{\Delta} + 4) & \text{jei } C_{max} = B' \end{cases}$$ Prisotinimui (S): $$S = \begin{cases} 0 & \text{jei } C_{max} = 0 \\ \frac{\Delta}{C_{max}} \times 100\% & \text{priešingu atveju} \end{cases}$$ Vertei (V): $$V = C_{max} \times 100\%$$ ## Kaip naudoti spalvų parinkiklį Trys būdai dirbti su spalvomis: spustelėkite spektrą, įveskite tikslias reikšmes arba reguliuokite slankikliu. Pasirinkite tai, kas jums natūraliausia. ### Spalvų pasirinkimas vizualiai Spustelėkite bet kur **spalvų spektre**, kad pasirinktumėte atspalvį. Horizontali padėtis parenka atspalvį (raudona, žalia, mėlyna ir kt.), o vertikali padėtis valdo sodrumą (ryškus ar išblukęs). Peržiūra atnaujinama iš karto, kad matytumėte tiksliai, ką pasirenkate. Vilkite **ryškumo slankiklį** po spektru, kad spalvą padarytumėte šviesesnę arba tamsesnę. Tai reguliuoja "vertės" komponentą HSV terminais — kairėn tamsinant, dešinėn šviečiant. ### Įveskite tikslias spalvų reikšmes Jau žinote, kokios spalvos reikia? Įveskite ją tiesiogiai: **Šešioliktainė sistema:** Įveskite kodus kaip `#FF5733`. Galite įtraukti arba praleisti `#` — įrankis tvarko abu variantus. Veikia ir su 3 skaitmenų sutrumpinimais (`#F37`). **RGB formatas:** Įveskite reikšmes nuo 0 iki 255 raudonai, žaliai ir mėlynai. Jei netyčia įvesite 300, bus automatiškai ribojama iki 255. **CMYK formatas:** Įveskite procentus (0-100) kiekvienam dažų komponentui. Naudinga, kai deriate spalvas su spaudos dizainerio specifikacijomis. Kiekvienas formatas realiuoju laiku atnaujina kitus. Pakeiskite šešioliktainį kodą, ir RGB/CMYK prisitaikys automatiškai. ### Spalvų kodų kopijavimas Spustelėkite kopijavimo mygtuką (buferio piktogramą) šalia bet kurio spalvos formato. Pamatysite greitą "Nukopijuota!" patvirtinimą, tada įklijuokite reikšmę ten, kur jums reikia — CSS failuose, dizaino programinėje įrangoje, dokumentacijoje, bet kur. **Profesionalus patarimas:** Dirbant su keliais failais ar programomis, laikykite šį įrankį atvertą naršyklės skirtuke. Galėsite greitai peržiūrėti ir nukopijuoti spalvų reikšmes neperjungiant konteksto. ## Realūs Naudojimo Atvejai ### Interneto Kūrimas Kuriate tamsaus režimo perjungiklį ir reikia spalvų variacijų. Pradėkite nuo savo prekės ženklo pagrindinės spalvos hex formatu (pvz., `#3B82F6`), tada naudokite ryškumo slankiklį, kad sugeneruotumėte tamsesnes versijas fono (`#1E3A8A`) ir šviesesnes versijas užvedimo būsenoms (`#60A5FA`). Nukopijuokite kiekvieną hex kodą tiesiogiai į savo CSS pasirinktines savybes. Dirbant su skaidrumu, paimkite RGB reikšmes ir naudokite jas `rgba()` funkcijose. Pavyzdžiui, `rgb(59, 130, 246)` tampa `rgba(59, 130, 246, 0.8)` 80% skaidrumo perdangai. Įprastas scenarijus: Klientas pateikia Figma dizainą su RGB spalvomis, bet jūs CSS teikiate hex kodus. Konvertuokite juos čia vietoj rankinio skaičiavimo. ### Grafinis Dizainas Spaudai Čia CMYK tampa kritiškai svarbus. Sukūrėte ryškų plakatą ekrane su RGB spalvomis, bet prieš siunčiant spausdinti, patikrinkite CMYK reikšmes. Ta elektrinė žydra spalva (RGB 0, 255, 255) konvertuojasi į CMYK(100, 0, 0, 0) - atrodo gerai. Tačiau ta ryški ekrano žalia spalva (RGB 0, 255, 0) gali pastebimai pasikeisti spausdinant. Profesionalus darbo srautas: Įveskite savo ekrano spalvas čia, pastebėkite CMYK konversijas, tada vizualiai palyginkite jas savo dizaino programos CMYK peržiūros režimu. Jei spalvos per daug keičiasi, pakoreguokite pasirinkimus prieš galutinį dizainą. Tai neleidžia įvykti pokalbiui "atrodė kitaip mano ekrane" su spaustuve. ### UI/UX Dizaino Sistemos Kuriant dizaino sistemą reikia nuoseklių spalvų skalių. Pradėkite nuo pagrindinės spalvos, tada sukurkite 5-10 ryškumo variacijų skirtingoms UI būsenoms. Ryškumo slankiklis tai padaro greitai - nereikia galvoti apie matematiką. Prieinamumui reikia pakankamo kontrasto tarp teksto ir fonų. Nors šis įrankis neskaičiuoja kontrasto santykių (tam reikės specialaus [WCAG kontrasto tikrintuvo](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html)), jis padeda greitai išbandyti skirtingus atspalvius, kol rasite tinkamas kombinacijas. Realus scenarijus: Jūsų pagrindinis mygtukas naudoja `#2563EB`, bet tekstas ant šio fono nepatenka į kontrasto reikalavimus. Pašviesinkite foną arba patamsinkite tekstą - naudokite peržiūrą, kad greitai išbandytumėte variantus. ### Skaitmeninis Menas ir Iliustracijos Dirbate skaitmeninį piešinį ir reikia nuoseklios spalvų harmonijos? Pasirinkite bazinį atspalvį spektre, tada sukurkite variacijas keisdami tik sodrumą ir ryškumą. Tai išlaiko jūsų paletę nuoseklią be atsitiktinių spalvų šuolių. Daugelis skaitmeninių menininkų laiko spalvų parinkiklį atvirą piešiant, kad greitai paimtų ir konvertuotų nuorodų spalvas. Matote tobulą šešėlio atspalvį nuorodų nuotraukoje? Spustelėkite jį čia (jei ištraukėte reikšmę kitur), gaukite RGB ir įklijuokite į Photoshop, Procreate ar Krita. ### Spalvų Švietimas ir Eksperimentavimas Norite suprasti, kaip spalvų modeliai susiję? Pasirinkite bet kokią spalvą ir stebėkite, kaip keičiasi jos reikšmės RGB, Hex, CMYK ir HSV. Pastebėkite, kad gryna raudona (RGB 255, 0, 0) lygi `#FF0000`, bet jos CMYK atitikmuo yra 0, 100, 100, 0 - visiškai kitokie skaičiai, vaizduojantys tą pačią suvokiamą spalvą. Šis vizualinis grįžtamasis ryšys padeda studentams suprasti, kodėl RGB naudoja sudėtinį maišymą (šviesos kombinavimas), o CMYK naudoja atimantį maišymą (dažų kombinavimas). Interaktyvus pobūdis padaro abstrakčias sąvokas apčiuopiamomis. ## Kiti spalvų įrankiai, kurių jums gali prireikti Šis įrankis sutelkia dėmesį į individualių spalvų pasirinkimą ir konvertavimą. Priklausomai nuo jūsų projekto, jums taip pat gali prireikti: **Paletės generatorių** (Adobe Color, Coolors), kai reikia kelių darniųjų spalvų, pagrįstų spalvų teorija – papildomų, triadalinių ar analogiškų schemų. **Naršyklės plėtinių** (ColorZilla, Eye Dropper), kad išgautumėte spalvas tiesiogiai iš bet kurio tinklalapio ar ekrano elemento. Puikiai tinka esamų dizainų suderinimui. **Kontrasto tikrintuvų** prieinamumo darbui. [WebAIM kontrasto tikrintuvas](https://webaim.org/resources/contrastchecker/) patikrina, ar jūsų teksto/fono deriniai atitinka WCAG standartus. **Pantone/RAL sistemų** tiksliam spalvų spausdinimui suderinti tarp skirtingų spaudos įmonių ir medžiagų. Šios fizinės spalvų kortelės suteikia standartizuotus atskaitos taškus, kurių skaitmeniniai įrankiai negali tiksliai atkartoti. ## Spalvų Prieinamumas Apie 8% vyrų ir 0,5% moterų turi tam tikrą spalvų suvokimo sutrikimą. Štai kaip kurti įtraukiamai: **Niekada nenaudokite spalvos vienos** reikšmei perteikti. Jei jūsų formoje klaidos rodomos raudona, taip pat pridėkite piktogramą ar teksto žymą. Diagramose su skirtingų spalvų linijomis? Pridėkite raštus, žymas arba abu. **Patikrinkite kontrastingumo santykius** naudodami įrankius kaip [WebAIM Kontrastingumo Tikrintuvas](https://webaim.org/resources/contrastchecker/). Įprastas tekstas turi turėti mažiausiai 4,5:1 santykį su fonu, didelis tekstas – 3:1. Pagal [WCAG 2.1 gaires](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html), tai užtikrina skaitomumą naudotojams su vidutiniškai silpna rega. **Venkite problemiškų derinių:** Raudona-žalia yra dažniausias sutrikimas (protanopija ir deuteranopija veikia raudonos ir žalios spalvos suvokimą). Mėlyna-geltona sukelia problemų žmonėms su tritanopija. Išbandykite savo dizainus su simuliatoriais kaip [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/), kad pamatytumėte, kaip jie atrodo naudotojams su skirtingais spalvų suvokimo sutrikimais. **Naudokite spalvų aklumui draugiškus spalvų derinius** kai įmanoma. Mėlynos, oranžinės ir geltonos spalvos paprastai gerai dera tarpusavyje, nes jas galima atskirti daugumai spalvų aklų žmonių. ## Dažniausiai užduodami klausimai ### Koks skirtumas tarp RGB ir CMYK? RGB skirta ekranams, CMYK - spaudai. Ekranai sukuria spalvas skleidžiant raudoną, žalią ir mėlyną šviesą (sudedamasis maišymas), o spausdintuvai sukuria spalvas sluoksniuodami cianinius, magenta, geltonus ir juodus dažus ant popieriaus (atimamasis maišymas). RGB gali sukurti ryškesnes, gyvesnes spalvas nei CMYK, nes šviesa turi platesnę spalvų gamą nei dažai. Būtent dėl to ekrano spalvos dažnai atrodo blankesnės jas atspausdinus. ### Kodėl mano spalvos atrodo kitaip atspausdintos? Ekranai skleidžia šviesą, popierius ją atspindi - tai iš esmės skirtingi procesai. Be to, RGB valdo milijonus spalvų, kurių CMYK dažai tiesiog negali atkurti. Ekrano kalibravimas, popieriaus kokybė ir dažų skirtumai dar labiau padidina kintamumą. Visada patikrinkite CMYK reikšmes prieš spausdinant ir paprašykite fizinių įrodymų kritiškam spalvų derinimui. ### Kaip gauti hex kodus iš internete matomų spalvų? Naudokite naršyklės kūrėjų įrankius. „Chrome" ar „Firefox" naršyklėse, spustelėkite dešinįjį pelės mygtuką bet kokiame elemente, pasirinkite „Inspect", tada spustelėkite mažą spalvos kvadratėlį stilių skydelyje. Tai atveria spalvų parinkiklį, kuris rodo hex kodą. Naršyklės plėtiniai kaip „ColorZilla" tai dar labiau pagreitina - jie leidžia spustelėti bet kur puslapyje ir gauti jo spalvos vertę. ### Ką reiškia # simbolis hex koduose? Tai tik prefiksas, nurodantis naršyklei „tai yra šešioliktainis spalvos kodas". Standartas ateina iš ankstyvųjų HTML ir CSS specifikacijų. Šeši simboliai po `#` reiškia RGB reikšmes šešioliktainėje sistemoje: du skaitmenys raudonai, du žaliai, du mėlynai. Be `#`, naršyklės jo nepripažins kaip spalvos. ### Kodėl veikia 3 skaitmenų hex kodai? Tai sutrumpintas variantas, kai kiekvienas spalvos kanalas kartojasi. `#F00` išsiplečia į `#FF0000` (raudona), `#C9C` tampa `#CC99CC` (šviesi violetinė). Šis sutrumpinimas sukurtas 9-ajame dešimtmetyje, siekiant sumažinti failų dydį, kai interneto sparta buvo brangi. Šiandien jis vis dar patogus paprastoms spalvoms. ### Ar spalvų konversijos tikslios? RGB į hex konversijos matematiškai tikslios - tai tos pačios vertės skirtingose skaičiavimo sistemose. RGB į CMYK konversijos yra apytikslės, nes konvertuojate tarp iš esmės skirtingų spalvų erdvių (šviesa prieš dažus). Įrankis naudoja [ICC spalvų profilio standartus](http://www.color.org/specification/ICC1v42_2006-05.pdf) šioms konversijoms, tai pat pat metodą, kurį naudoja profesionalios dizaino programos. ### Kaip sukurti prieinamas spalvų kombinacijas? Naudokite kontrastingumo tikrintuvą kaip [WebAIM įrankį](https://webaim.org/resources/contrastchecker/) po spalvų pasirinkimo. Jums reikia 4,5:1 santykio įprastam tekstui, 3:1 dideliam tekstui. Venkite raudonai-žalių kombinacijų (sunkiausios spalvų akliems naudotojams). Jei abejojate, tamsesnis tekstas ant šviesesnių foninių spalvų arba atvirkščiai - pakankamas šviesumo skirtumas yra tai, kas svarbiausia. ### Ar galiu pasirinkti spalvas iš vaizdų? Ne tiesiogiai šiame įrankyje. Naudokite naršyklės plėtinį kaip „ColorZilla" arba ekrano nuotrauką ir naudokite savo operacinės sistemos spalvų parinkiklį („Digital Color Meter" „macOS", „PowerToys Color Picker" „Windows"). Kai turėsite spalvos vertę, įveskite ją čia, kad konvertuotumėte tarp formatų. ### Kodėl kai kurios RGB spalvos blogai konvertuojamos į CMYK? CMYK turi siauresnę „gamą" (atkuriamų spalvų diapazoną) nei RGB. Ryškios mėlynos, gyvos žalios ir elektrinės oranžinės dažnai nepatenka į tai, ką CMYK dažai gali fiziškai sukurti. Kai tai nutinka, spausdintuvas pakeičia artimiausią įmanomą atitikmenį, kuris paprastai atrodo mažiau sodriai. Profesionalūs spaudos dizaineriai dažnai pradeda nuo CMYK saugių spalvų, kad išvengtų šios problemos. ## Spalvų konvertavimo kodo pavyzdžiai Čia pateikiami keli kodo pavyzdžiai, rodantys, kaip konvertuoti tarp skirtingų spalvų formatų:1// RGB į Hex konvertavimas
2function rgbToHex(r, g, b) {
3 const toHex = (c) => {
4 const hex = Math.round(c).toString(16);
5 return hex.length === 1 ? '0' + hex : hex;
6 };
7
8 return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
9}
10
11// Hex į RGB konvertavimas
12function hexToRgb(hex) {
13 // Pašalinti # jei yra
14 const cleanHex = hex.startsWith('#') ? hex.slice(1) : hex;
15
16 // Apdoroti tiek 3-jų, tiek 6-ių skaitmenų hex
17 const expandedHex = cleanHex.length === 3
18 ? cleanHex.split('').map(char => char + char).join('')
19 : cleanHex;
20
21 const r = parseInt(expandedHex.substring(0, 2), 16);
22 const g = parseInt(expandedHex.substring(2, 4), 16);
23 const b = parseInt(expandedHex.substring(4, 6), 16);
24
25 return { r, g, b };
26}
27
28// RGB į CMYK konvertavimas
29function rgbToCmyk(r, g, b) {
30 // Normalizuoti RGB reikšmes
31 const normalizedR = r / 255;
32 const normalizedG = g / 255;
33 const normalizedB = b / 255;
34
35 // Apskaičiuoti K (juoda)
36 const k = 1 - Math.max(normalizedR, normalizedG, normalizedB);
37
38 // Apdoroti gryną juodą
39 if (k === 1) {
40 return { c: 0, m: 0, y: 0, k: 100 };
41 }
42
43 // Apskaičiuoti C, M, Y
44 const c = ((1 - normalizedR - k) / (1 - k)) * 100;
45 const m = ((1 - normalizedG - k) / (1 - k)) * 100;
46 const y = ((1 - normalizedB - k) / (1 - k)) * 100;
47
48 return {
49 c: Math.round(c),
50 m: Math.round(m),
51 y: Math.round(y),
52 k: Math.round(k * 100)
53 };
54}
55
56// Naudojimo pavyzdys
57const rgb = { r: 255, g: 0, b: 0 }; // Grynas raudonas
58console.log(`Hex: ${rgbToHex(rgb.r, rgb.g, rgb.b)}`);
59console.log(`CMYK:`, rgbToCmyk(rgb.r, rgb.g, rgb.b));
601# RGB į Hex konvertavimas
2def rgb_to_hex(r, g, b):
3 return f'#{r:02x}{g:02x}{b:02x}'
4
5# Hex į RGB konvertavimas
6def hex_to_rgb(hex_color):
7 # Pašalinti # jei yra
8 hex_color = hex_color.lstrip('#')
9
10 # Apdoroti tiek 3-jų, tiek 6-ių skaitmenų hex
11 if len(hex_color) == 3:
12 hex_color = ''.join([c*2 for c in hex_color])
13
14 return {
15 'r': int(hex_color[0:2], 16),
16 'g': int(hex_color[2:4], 16),
17 'b': int(hex_color[4:6], 16)
18 }
19
20# RGB į CMYK konvertavimas
21def rgb_to_cmyk(r, g, b):
22 # Normalizuoti RGB reikšmes
23 r_norm = r / 255
24 g_norm = g / 255
25 b_norm = b / 255
26
27 # Apskaičiuoti K (juoda)
28 k = 1 - max(r_norm, g_norm, b_norm)
29
30 # Apdoroti gryną juodą
31 if k == 1:
32 return {'c': 0, 'm': 0, 'y': 0, 'k': 100}
33
34 # Apskaičiuoti C, M, Y
35 c = ((1 - r_norm - k) / (1 - k)) * 100
36 m = ((1 - g_norm - k) / (1 - k)) * 100
37 y = ((1 - b_norm - k) / (1 - k)) * 100
38
39 return {
40 'c': round(c),
41 'm': round(m),
42 'y': round(y),
43 'k': round(k * 100)
44 }
45
46# Naudojimo pavyzdys
47rgb = {'r': 0, 'g': 128, 'b': 255} # Dangaus mėlyna
48hex_color = rgb_to_hex(rgb['r'], rgb['g'], rgb['b'])
49cmyk = rgb_to_cmyk(rgb['r'], rgb['g'], rgb['b'])
50
51print(f"Hex: {hex_color}")
52print(f"CMYK: C={cmyk['c']}%, M={cmyk['m']}%, Y={cmyk['y']}%, K={cmyk['k']}%")
531public class ColorConverter {
2 // RGB į Hex konvertavimas
3 public static String rgbToHex(int r, int g, int b) {
4 return String.format("#%02x%02x%02x", r, g, b);
5 }
6
7 // Hex į RGB konvertavimas
8 public static int[] hexToRgb(String hexColor) {
9 // Pašalinti # jei yra
10 if (hexColor.startsWith("#")) {
11 hexColor = hexColor.substring(1);
12 }
13
14 // Apdoroti tiek 3-jų, tiek 6-ių skaitmenų hex
15 if (hexColor.length() == 3) {
16 String expandedHex = "";
17 for (char c : hexColor.toCharArray()) {
18 expandedHex += c + String.valueOf(c);
19 }
20 hexColor = expandedHex;
21 }
22
23 int r = Integer.parseInt(hexColor.substring(0, 2), 16);
24 int g = Integer.parseInt(hexColor.substring(2, 4), 16);
25 int b = Integer.parseInt(hexColor.substring(4, 6), 16);
26
27 return new int[]{r, g, b};
28 }
29
30 // RGB į CMYK konvertavimas
31 public static double[] rgbToCmyk(int r, int g, int b) {
32 // Normalizuoti RGB reikšmes
33 double normalizedR = r / 255.0;
34 double normalizedG = g / 255.0;
35 double normalizedB = b / 255.0;
36
37 // Apskaičiuoti K (juoda)
38 double k = 1 - Math.max(Math.max(normalizedR, normalizedG), normalizedB);
39
40 // Apdoroti gryną juodą
41 if (k == 1) {
42 return new double[]{0, 0, 0, 100};
43 }
44
45 // Apskaičiuoti C, M, Y
46 double c = ((1 - normalizedR - k) / (1 - k)) * 100;
47 double m = ((1 - normalizedG - k) / (1 - k)) * 100;
48 double y = ((1 - normalizedB - k) / (1 - k)) * 100;
49
50 return new double[]{
51 Math.round(c),
52 Math.round(m),
53 Math.round(y),
54 Math.round(k * 100)
55 };
56 }
57
58 public static void main(String[] args) {
59 // Naudojimo pavyzdys
60 int r = 75, g = 0, b = 130; // Violetinė
61 String hexColor = rgbToHex(r, g, b);
62 double[] cmyk = rgbToCmyk(r, g, b);
63
64 System.out.println("Hex: " + hexColor);
65 System.out.printf("CMYK: C=%.0f%%, M=%.0f%%, Y=%.0f%%, K=%.0f%%\n",
66 cmyk[0], cmyk[1], cmyk[2], cmyk[3]);
67 }
68}
69Nuorodos ir papildoma literatūra
- W3C CSS spalvų modulis 4 lygis - Oficiali interneto spalvų specifikacija
- WCAG 2.1 kontrastingumo gairės - Prieinamumo standartai spalvų kontrastui
- WebAIM kontrastingumo tikrintuvas - Spalvų kontrastingumo santykių tikrinimas
- ICC spalvų profilio standartai - Techninė specifikacija spalvų konvertavimui
- MDN interneto dokumentai: CSS spalvų reikšmės - Išsamus vadovas interneto spalvų formatams