Krāsu Izvēles Rīks - Konvertēt RGB, Hex, CMYK un HSV Krāsu Kodus
Bezmaksas tiešsaistes krāsu izvēles rīks ar momentānu RGB, Hex, CMYK un HSV konvertēšanu. Noklikšķiniet uz spektra, lai vizuāli izvēlētos krāsas, vai ievadiet precīzas vērtības. Vienkārši nokopējiet jebkuru formātu tīmekļa dizainam, drukāšanai un digitāliem projektiem.
Krāsu Izvēlētājs
RGB (0-255)
CMYK (0-100)
Krāsu Izvēlētājs
Dokumentācija
Ko Jūs Varat Darīt Ar Šo Krāsu Atlasītāju
Vai vajadzīgs ideāls nokrāsas tonis jūsu projektam? Šis krāsu atlasītājs ļauj jums atlasīt, priekšskatīt un konvertēt krāsas starp RGB, Hex, CMYK un HSV formātiem momentāni. Vai jūs kodējat vietni, veidojat logotipu vai gatavojat failus drukāšanai, jūs atradīsiet precīzās krāsu vērtības, kādas vajadzīgas - bez minējumiem, bez pārslēgšanās starp rīkiem.
Noklikšķiniet jebkur krāsu spektrā, lai izvēlētos nokrāsu, pielāgojiet spilgtumu ar slīdni vai ievadiet precīzas vērtības tieši. Katrs formāts atjauninās reālajā laikā, un jūs varat kopēt jebkuru krāsu kodu ar vienu klikšķi.
Krāsu modeļu izpratne
Dažādi projekti prasa dažādus krāsu formātus. Šeit ir tas, ko katrs no tiem dara un kad to izmantot:
RGB (Sarkans, Zaļš, Zils)
RGB darbojas, sajaucot sarkano, zaļo un zilo gaismu — tieši tāpat, kā jūsu ekrāns pašlaik attēlo krāsas. Katrai komponentei ir diapazons no 0 līdz 255:
- RGB(255, 0, 0) = tīri sarkans
- RGB(0, 255, 0) = tīri zaļš
- RGB(0, 0, 255) = tīri zils
- RGB(255, 255, 255) = balts
- RGB(0, 0, 0) = melns
Kad izmantot RGB: Jebkurā digitālā darbā — vietnēs, mobilajās lietotnēs, video rediģēšanā vai ekrāna grafikā. Tas ir displeja dzimtā valoda, tāpēc rīki kā CSS tieši atbalsta rgb() un rgba() funkcijas. Saskaņā ar W3C CSS krāsu moduļa specifikāciju, RGB ir tīmekļa standartu pamatā esošais krāsu modelis.
Sešpadsmitdaļu (Hex)
Hex kodi ir vienkārši RGB vērtības, kas rakstītas 16-sistēmā, nevis 10-sistēmā. Hex krāsa izskatās kā #FF5733, kur:
#simbols atzīmē to kā hex kodu- Pirmās divas rakstzīmes = sarkans (00-FF)
- Vidējās divas = zaļš (00-FF)
- Pēdējās divas = zils (00-FF)
#FF0000= sarkans,#00FF00= zaļš,#0000FF= zils
Dažreiz jūs redzēsit 3 rakstzīmju saīsinājumu kā #F00 vietā #FF0000 — tas darbojas, kad katra krāsu kanāla cipars atkārtojas.
Kad izmantot Hex: Tīmekļa izstrāde ir galvenais lietojuma gadījums. CSS vienmēr ir atbalstījis hex pierakstu, un lielākā daļa izstrādātāju to atrod ātrāku par rgb(). Izplatīta kļūda: aizmirst # simbolu, kas klusu salauž jūsu stilus, jo pārlūki to neatpazīst kā derīgu krāsu.
CMYK (Ciāns, Magenta, Dzeltens, Key/Melns)
CMYK ir krāsu modelis, ko izmanto printeri. Atšķirībā no RGB (kas pievieno gaismu), CMYK to atņem — sajaucot tintes baltā papīrā, lai radītu krāsas:
- Katra komponente svārstās no 0% līdz 100%
- CMYK(0, 100, 100, 0) = sarkans
- CMYK(100, 0, 100, 0) = zaļš
- CMYK(0, 0, 0, 100) = tīra melnā tinte
- CMYK(0, 0, 0, 0) = nav tintes (balts papīrs redzams cauri)
Kad izmantot CMYK: Dizains drukāšanai — vizītkartes, brošūras, žurnāli, iepakojums. Realitātes pārbaude: daudzas spilgtas RGB krāsas vienkārši nevar reproducēt ar CMYK tintēm. Tas spilgtais elektriskais zils, ko redzat ekrānā? Tas izskatīsies blāvāks, kad tiks izdrukāts. Profesionāli dizaineri vienmēr priekšskatās CMYK pārveidojumus, pirms sūta failus drukāšanai, lai izvairītos no pārsteigumiem.
HSV (Nokrāsa, Piesātinājums, Vērtība)
HSV sadala krāsu trīs intuitīvās komponentēs:
- Nokrāsa: Kura krāsu ģimene (0-360°) — 0° ir sarkans, 120° ir zaļš, 240° ir zils
- Piesātinājums: Cik dzīvīgs vai pelēks (0-100%) — 0% ir pelēktoņu gamma, 100% ir pilnīgi piesātināts
- Vērtība: Cik gaišs vai tumšs (0-100%) — 0% ir melns, 100% ir pilna spilgtuma
Kāpēc HSV ir svarīgs: Tas atbilst tam, kā cilvēki dabiski domā par krāsu. Vēlaties tumšāku zilu? Samaziniet vērtību. Vēlaties mazāk intensīvu zilu? Samaziniet piesātinājumu. Tāpēc HSV ir ideāls interaktīviem krāsu izvēlētājiem, kur jūs izvēlaties nokrāsu spektrā un pielāgojat spilgtumu ar slīdni.
Krāsu pārveidošanas formulas
Krāsu izvēlne automātiski pārveido starp dažādiem krāsu modeļiem, izmantojot šīs matemātiskās formulas:
RGB uz Hex pārveidošana
Lai pārveidotu RGB uz heksadecimālo:
- Pārveidojiet katru RGB komponentu (0-255) par divciparu heksadecimālu skaitli
- Apvienojiet trīs heksadecimālās vērtības ar # prefiksu
Kur toHex() pārveido decimālu skaitli tā heksadecimālajā reprezentācijā.
RGB uz CMYK pārveidošana
Pārveidošana no RGB uz CMYK ietver šādus soļus:
- Normalizējiet RGB vērtības diapazonā 0-1
- Aprēķiniet melnās atslēgas (K) komponentu
- Aprēķiniet C, M un Y atkarībā no K
RGB uz HSV pārveidošana
Pārveidojot RGB uz HSV:
Krāsai (H):
0° & \text{ja } \Delta = 0 \\ 60° \times (\frac{G' - B'}{\Delta} \mod 6) & \text{ja } C_{max} = R' \\ 60° \times (\frac{B' - R'}{\Delta} + 2) & \text{ja } C_{max} = G' \\ 60° \times (\frac{R' - G'}{\Delta} + 4) & \text{ja } C_{max} = B' \end{cases}$$ Piesātinājumam (S): $$S = \begin{cases} 0 & \text{ja } C_{max} = 0 \\ \frac{\Delta}{C_{max}} \times 100\% & \text{pretējā gadījumā} \end{cases}$$ Vērtībai (V): $$V = C_{max} \times 100\%$$ ## Kā lietot krāsu izvēlni Trīs veidi, kā strādāt ar krāsām: noklikšķiniet spektrā, ievadiet precīzas vērtības vai pielāgojiet ar slīdni. Izvēlieties to, kas šķiet dabiskāks jūsu darba plūsmai. ### Krāsu izvēle vizuāli Noklikšķiniet jebkur uz **krāsu spektra**, lai izvēlētos nokrāsu. Horizontālā pozīcija izvēlas toni (sarkans, zaļš, zils utt.), savukārt vertikālā pozīcija kontrolē piesātinājumu (dzīvs vai izbalējis). Priekšskatījums atjauninās momentāni, lai jūs precīzi redzētu, ko iegūstat. Velciet **spilgtuma slīdni** zem spektra, lai padarītu krāsu gaišāku vai tumšāku. Tas pielāgo "vērtības" komponentu HSV terminoloģijā — pa kreisi tumšina, pa labi gaišina. ### Ievadiet precīzas krāsu vērtības Jau zināt vajadzīgo krāsu? Ievadiet to tieši: **Heksadecimālais formāts:** Ievadiet kodus kā `#FF5733`. Varat iekļaut vai izlaist `#` — rīks apstrādā abus. Darbojas arī ar 3 ciparu saīsinājumu (`#F37`). **RGB formāts:** Ievadiet vērtības no 0-255 sarkanajai, zaļajai un zilajai krāsai. Ja nejauši ievadīsiet 300, tas automātiski ierobežos līdz 255. **CMYK formāts:** Ievadiet procentus (0-100) katram tintes komponentam. Noderīgi, kad saskaņojat krāsas ar drukas dizainera specifikācijām. Katrs formāts reālajā laikā atjaunina pārējos. Mainot heksadecimālo kodu, RGB/CMYK pielāgojas automātiski. ### Kopēt krāsu kodus Noklikšķiniet uz kopēšanas pogas (starpliktuves ikona) blakus jebkuram krāsu formātam. Redzēsiet ātru "Nokopēts!" apstiprinājumu, pēc tam ielīmējiet vērtību tur, kur nepieciešams — CSS failos, dizaina programmās, dokumentācijā, jebkur. **Profesionāls padoms:** Strādājot ar vairākiem failiem vai lietojumprogrammām, atstājiet šo rīku atvērtu pārlūkprogrammas cilnē. Jūs varēsiet ātri atsaukties un kopēt krāsu vērtības, nemainot kontekstu. ## Reāli lietošanas gadījumi ### Tīmekļa izstrāde Jūs veidojat tumšā režīma pārslēgšanas pogu un vajag krāsu variācijas. Sāciet ar zīmola primāro krāsu heksadecimālajā formātā (piemēram, `#3B82F6`), tad izmantojiet spilgtuma slīdni, lai ģenerētu tumšākas versijas foniem (`#1E3A8A`) un gaišākas versijas peles pārvietošanas stāvokļiem (`#60A5FA`). Kopējiet katru heksadecimālo kodu tieši savās CSS pielāgotajās īpašībās. Strādājot ar caurspīdīgumu, iegūstiet RGB vērtības un izmantojiet tās `rgba()` funkcijās. Piemēram, `rgb(59, 130, 246)` kļūst par `rgba(59, 130, 246, 0.8)` 80% necaurspīdīgam pārklājumam. Tipiska situācija: Klients sniedz Figma dizainu ar krāsām, kas norādītas RGB, bet jūs CSS vēlaties heksadecimālos kodus. Konvertējiet tos šeit, nevis rēķiniet manuāli. ### Grafiskais dizains drukāšanai Šeit CMYK kļūst kritiski svarīgs. Jūs esat izveidojis dzīvu plakātu ekrānā ar RGB krāsām, bet pirms sūtīšanas drukātavā, pārbaudiet CMYK vērtības. Tā elektriski ciāna krāsa (RGB 0, 255, 255) konvertējas par CMYK(100, 0, 0, 0) - kas izskatās labi. Bet spilgti zaļā ekrāna krāsa (RGB 0, 255, 0) var ievērojami mainīties drukājot. Profesionāls darba process: Ievadiet savas ekrāna krāsas šeit, atzīmējiet CMYK konversijas, tad vizuāli salīdziniet tās sava dizaina programmatūras CMYK priekšskatījuma režīmā. Ja krāsas mainās pārāk daudz, koriģējiet savas izvēles pirms dizaina galīgās versijas. Tas novērš sarunu "tas izskatījās citādi uz mana ekrāna" ar drukātavu. ### UI/UX dizaina sistēmas Dizaina sistēmas veidošana prasa konsekventas krāsu skalas. Sāciet ar primāro krāsu, tad izveidojiet 5-10 spilgtuma variācijas dažādiem UI stāvokļiem. Spilgtuma slīdnis padara to ātru - bez garīgās matemātikas. Pieejamībai jums būs nepieciešams pietiekams kontrasts starp tekstu un foniem. Lai gan šis rīks neaprēķina kontrasta attiecības (jums būs vajadzīgs speciāls [WCAG kontrasta pārbaudītājs](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html)), tas palīdz ātri pārbaudīt dažādus toņus, līdz atrodat kombinācijas, kas darbojas. Reāls scenārijs: Jūsu primārā poga izmanto `#2563EB`, bet teksts uz šī fona neatbilst kontrasta prasībām. Padariet fonu gaišāku vai tekstu tumšāku - izmantojiet priekšskatījumu, lai momentāli testētu opcijas. ### Digitālā māksla un ilustrācija Strādājat pie digitālas gleznas un vajag konsekventu krāsu harmoniju? Izvēlieties bāzes toni spektrā, tad izveidojiet variācijas, mainot tikai piesātinājumu un spilgtumu. Tas saglabā jūsu paleti saskaņotu bez nejaušām krāsu pārmaiņām. Daudzi digitālie mākslinieki tur atvērtu krāsu izvēlētāju, gleznojot, lai ātri paņemtu un konvertētu atsauces krāsas. Redzat ideālu ēnas toni atsauces foto? Noklikšķiniet to šeit (ja esat ieguvuši vērtību citur), iegūstiet RGB un ielīmējiet Photoshop, Procreate vai Krita. ### Krāsu izglītība un eksperimentēšana Vēlaties saprast, kā krāsu modeļi saistās? Izvēlieties jebkuru krāsu un novērojiet, kā tās vērtības mainās RGB, Hex, CMYK un HSV. Ievērojiet, ka tīra sarkana (RGB 255, 0, 0) ir vienāda ar `#FF0000`, bet tās CMYK ekvivalents ir 0, 100, 100, 0 - pilnīgi atšķirīgi skaitļi, kas apzīmē vienu un to pašu uztveramo krāsu. Šī vizuālā atgriezeniskā saite palīdz studentiem saprast, kāpēc RGB izmanto aditīvo jaukšanu (gaismas apvienošanu), bet CMYK - subtraktīvo jaukšanu (tintes apvienošanu). Interaktīvā daba padara abstraktus jēdzienus taustāmus. ## Citas krāsu rīki, kas jums varētu būt nepieciešami Šis rīks fokusējas uz individuālu krāsu atlasi un konvertēšanu. Atkarībā no jūsu projekta, jums varētu būt nepieciešami: **Palešu ģeneratori** (Adobe Color, Coolors), kad jums vajag vairākas harmoniskas krāsas, pamatojoties uz krāsu teoriju - papildinošas, triadiskas vai analogas shēmas. **Pārlūka paplašinājumi** (ColorZilla, Eye Dropper), lai izvilktu krāsas tieši no jebkuras tīmekļa lapas vai ekrāna elementa. Lieliski piemēroti esošo dizainu saskaņošanai. **Kontrasta pārbaudes rīki** pieejamības darbam. [WebAIM Kontrasta pārbaudītājs](https://webaim.org/resources/contrastchecker/) pārbauda, vai jūsu teksta/fona kombinācijas atbilst WCAG standartiem. **Pantone/RAL sistēmas** precīzai drukas krāsu saskaņošanai dažādās drukas darbnīcās un materiālos. Šīs fiziskās paraugu grāmatas nodrošina standartizētas atsauces, ko digitālie rīki nevar pilnīgi precīzi reproducēt. ## Krāsu pieejamības nodrošināšana Aptuveni 8% vīriešu un 0,5% sieviešu ir kāda veida krāsu redzes traucējumi. Lūk, kā veidot iekļaujošu dizainu: **Nekad neizmantojiet tikai krāsu**, lai nodotu informāciju. Ja jūsu veidlapā kļūdas tiek parādītas sarkanā krāsā, pievienojiet arī ikonu vai teksta etiķeti. Diagrammās ar dažādu krāsu līnijām? Pievienojiet rakstus, etiķetes vai abas lietas. **Pārbaudiet kontrasta attiecības**, izmantojot rīkus kā [WebAIM kontrasta pārbaudītāju](https://webaim.org/resources/contrastchecker/). Parastam tekstam ir nepieciešama minimāla 4,5:1 attiecība pret tā fonu, lielam tekstam - 3:1. Saskaņā ar [WCAG 2.1 vadlīnijām](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html), tas nodrošina lasāmību lietotājiem ar vidēji zemu redzi. **Izvairieties no problemātiskām kombinācijām:** Sarkani-zaļš ir visizplatītākais problēmas veids (protanopija un deuteranopija ietekmē sarkanas un zaļas krāsas uztveri). Zili-dzeltens rada problēmas cilvēkiem ar tritanopiju. Pārbaudiet savus dizainus ar simulatoriem kā [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/), lai redzētu, kā tie izskatās lietotājiem ar dažādiem krāsu redzes traucējumiem. **Izmantojiet krāsu akluma draudzīgas krāsu paletes**, kad tas ir iespējams. Zilie, oranžie un dzeltenīgie toņi parasti labi darbojas kopā, jo tie ir atšķirami lielākajā daļā krāsu akluma veidu. ## Bieži uzdotie jautājumi ### Kāda ir atšķirība starp RGB un CMYK? RGB ir paredzēts ekrāniem, CMYK - drukāšanai. Ekrāni rada krāsas, izstarojot sarkanu, zaļu un zilu gaismu (aditīvā jaukšana), savukārt printeri rada krāsas, uzklājot ciāna, magenta, dzeltenu un melnu tinti uz papīra (subtraktīvā jaukšana). RGB var radīt spilgtākas un dzīvīgākas krāsas nekā CMYK, jo gaismai ir plašāks krāsu spektrs nekā tintei. Tāpēc ekrāna krāsas bieži izskatās blāvākas, kad tiek izdrukātas. ### Kāpēc manas krāsas izskatās citādāk, kad tiek izdrukātas? Ekrāni izstaro gaismu, papīrs to atstaroj - tie ir principiāli atšķirīgi procesi. Turklāt RGB apstrādā miljoniem krāsu, ko CMYK tintes vienkārši nevar reproducēt. Ekrāna kalibrācija, papīra kvalitāte un tintes variācijas vēl vairāk palielina mainīgumu. Vienmēr pārbaudiet CMYK vērtības pirms drukāšanas un pieprasiet fiziskus paraugus kritiskam krāsu saskaņošanas darbam. ### Kā iegūt hex kodus no krāsām, ko redzu tiešsaistē? Izmantojiet sava pārlūka izstrādātāja rīkus. Chrome vai Firefox pārlūkā ar labo pogu noklikšķiniet uz jebkura elementa, izvēlieties "Pārbaudīt", tad noklikšķiniet uz mazā krāsu kvadrātiņa stilu panelī. Tas atvērs krāsu atlasītāju, kas rāda hex kodu. Pārlūka paplašinājumi kā ColorZilla padara šo procesu vēl ātrāku - tie ļauj noklikšķināt jebkur lapā, lai iegūtu tās krāsas vērtību. ### Ko nozīmē # simbols hex kodos? Tas ir tikai priedēklis, kas pārlūkam saka "šis ir heksadecimāls krāsas kods". Standarts nāk no agrīnajām HTML un CSS specifikācijām. Sešas rakstzīmes pēc `#` pārstāv RGB vērtības 16. bāzē: divas ciparu zīmes sarkanajai, divas zaļajai, divas zilajai. Bez `#`, pārlūki to neatpazīs kā krāsu. ### Kāpēc darbojas 3-ciparu hex kodi? Tie ir saīsinājums, kad katra krāsu kanāla vērtība atkārtojas. `#F00` paplašinās līdz `#FF0000` (sarkana), `#C9C` kļūst par `#CC99CC` (gaiši violeta). Šis saīsinājums tika izveidots 1990. gados, lai samazinātu failu izmērus, kad interneta joslas platums bija dārgs. Tas joprojām ir ērti lietojams vienkāršām krāsām. ### Vai krāsu konvertācijas ir precīzas? RGB-uz-hex konvertācijas ir matemātiski precīzas - tās ir vienādas vērtības dažādās skaitļu sistēmās. RGB-uz-CMYK konvertācijas ir aptuvenas, jo jūs konvertējat starp principiāli atšķirīgām krāsu telpām (gaisma pret tinti). Rīks izmanto [ICC krāsu profila standartus](http://www.color.org/specification/ICC1v42_2006-05.pdf) šīm konvertācijām, kas ir tāds pats pieeja, kādu izmanto profesionālas dizaina programmas. ### Kā izveidot pieejamas krāsu kombinācijas? Pēc krāsu izvēles izmantojiet kontrastu pārbaudītāju kā [WebAIM rīku](https://webaim.org/resources/contrastchecker/). Nepieciešama 4,5:1 attiecība parastam tekstam, 3:1 lielam tekstam. Izvairieties no sarkani-zaļām kombinācijām (grūtākās krāsu akliem lietotājiem). Šaubu gadījumā - tumšāks teksts uz gaišāka fona vai otrādi - pietiekama luminances atšķirība ir vissvarīgākā. ### Vai varu izvēlēties krāsas no attēliem? Ne tieši šajā rīkā. Izmantojiet pārlūka paplašinājumu kā ColorZilla vai uzņemiet ekrānuzņēmumu un izmantojiet savas operētājsistēmas krāsu atlasītāju (Digital Color Meter macOS, PowerToys Color Picker Windows). Kad būsiet ieguvuši krāsas vērtību, ievadiet to šeit, lai konvertētu starp formātiem. ### Kāpēc dažas RGB krāsas labi nekonvertējas CMYK? CMYK ir šaurāks "gamuts" (reproducējamo krāsu diapazons) nekā RGB. Spilgti zilie, dzīvīgi zaļie un elektriskās apelsīnu krāsas bieži atrodas ārpus tam, ko CMYK tintes fiziski var radīt. Kad tas notiek, printeris aizstāj ar tuvāko iespējamo variantu, kas parasti izskatās mazāk piesātināts. Profesionāli drukas dizaineri bieži sāk ar CMYK-drošām krāsām, lai izvairītos no šīs problēmas. ## Krāsu pārveidošanas kodu piemēri Šeit ir daži kodu piemēri, kas parāda, kā pārveidot starp dažādiem krāsu formātiem:1// RGB uz Hex pārveidošana
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 uz RGB pārveidošana
12function hexToRgb(hex) {
13 // Noņemt # ja tas ir klāt
14 const cleanHex = hex.startsWith('#') ? hex.slice(1) : hex;
15
16 // Apstrādāt gan 3-ciparu, gan 6-ciparu 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 uz CMYK pārveidošana
29function rgbToCmyk(r, g, b) {
30 // Normalizēt RGB vērtības
31 const normalizedR = r / 255;
32 const normalizedG = g / 255;
33 const normalizedB = b / 255;
34
35 // Aprēķināt K (melno)
36 const k = 1 - Math.max(normalizedR, normalizedG, normalizedB);
37
38 // Apstrādāt tīri melno
39 if (k === 1) {
40 return { c: 0, m: 0, y: 0, k: 100 };
41 }
42
43 // Aprēķināt 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// Lietošanas piemērs
57const rgb = { r: 255, g: 0, b: 0 }; // Tīri sarkans
58console.log(`Hex: ${rgbToHex(rgb.r, rgb.g, rgb.b)}`);
59console.log(`CMYK:`, rgbToCmyk(rgb.r, rgb.g, rgb.b));
601# RGB uz Hex pārveidošana
2def rgb_to_hex(r, g, b):
3 return f'#{r:02x}{g:02x}{b:02x}'
4
5# Hex uz RGB pārveidošana
6def hex_to_rgb(hex_color):
7 # Noņemt # ja tas ir klāt
8 hex_color = hex_color.lstrip('#')
9
10 # Apstrādāt gan 3-ciparu, gan 6-ciparu 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 uz CMYK pārveidošana
21def rgb_to_cmyk(r, g, b):
22 # Normalizēt RGB vērtības
23 r_norm = r / 255
24 g_norm = g / 255
25 b_norm = b / 255
26
27 # Aprēķināt K (melno)
28 k = 1 - max(r_norm, g_norm, b_norm)
29
30 # Apstrādāt tīri melno
31 if k == 1:
32 return {'c': 0, 'm': 0, 'y': 0, 'k': 100}
33
34 # Aprēķināt 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# Lietošanas piemērs
47rgb = {'r': 0, 'g': 128, 'b': 255} # Debesu zils
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 uz Hex pārveidošana
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 uz RGB pārveidošana
8 public static int[] hexToRgb(String hexColor) {
9 // Noņemt # ja tas ir klāt
10 if (hexColor.startsWith("#")) {
11 hexColor = hexColor.substring(1);
12 }
13
14 // Apstrādāt gan 3-ciparu, gan 6-ciparu 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 uz CMYK pārveidošana
31 public static double[] rgbToCmyk(int r, int g, int b) {
32 // Normalizēt RGB vērtības
33 double normalizedR = r / 255.0;
34 double normalizedG = g / 255.0;
35 double normalizedB = b / 255.0;
36
37 // Aprēķināt K (melno)
38 double k = 1 - Math.max(Math.max(normalizedR, normalizedG), normalizedB);
39
40 // Apstrādāt tīri melno
41 if (k == 1) {
42 return new double[]{0, 0, 0, 100};
43 }
44
45 // Aprēķināt 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 // Lietošanas piemērs
60 int r = 75, g = 0, b = 130; // Violets
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}
69Atsauces un papildu literatūra
- W3C CSS krāsu modulis 4. līmenis - Oficiālā tīmekļa krāsu specifikācija
- WCAG 2.1 kontrasta vadlīnijas - Pieejamības standarti krāsu kontrastam
- WebAIM kontrasta pārbaudes rīks - Pārbaudiet krāsu kontrasta attiecības
- ICC krāsu profila standarti - Tehniskā specifikācija krāsu konvertēšanai
- MDN tīmekļa dokumentācija: CSS krāsu vērtības - Visaptverošs ceļvedis tīmekļa krāsu formātos