Izbirnik barv - Pretvorba RGB, Hex, CMYK in HSV barvnih kod
Brezplačen spletni izbirnik barv z takojšnjo pretvorbo RGB, Hex, CMYK in HSV. Kliknite spekter za vizualni izbor barv ali vnesite točne vrednosti. Kopirajte katerikoli format z enim klikom za spletno oblikovanje, tisk in digitalne projekte.
Izbirnik barv
RGB (0-255)
CMYK (0-100)
Izbirnik barv
Dokumentacija
Kaj lahko naredite s tem izbiračem barv
Potrebujete popolno odtenek za svoj projekt? Ta izbirač barv vam omogoča izbiro, predogled in pretvorbo barv med RGB, Hex, CMYK in HSV formati trenutno. Ne glede na to, ali programirate spletno stran, oblikujete logotip ali pripravljate datoteke za tisk, boste našli natančne barvne vrednosti, ki jih potrebujete - brez ugibanja, brez preklapljanja med orodji.
Kliknite kjerkoli na barvnem spektru, da izberete odtenek, prilagodite svetlost s drsalnikom ali neposredno vnesite natančne vrednosti. Vsak format se posodobi v realnem času, in barovno kodo lahko kopirate z enim klikom.
Razumevanje barvnih modelov
Različni projekti potrebujejo različne barvne formate. Tukaj je, kaj vsak od njih počne in kdaj ga uporabiti:
RGB (Rdeča, Zelena, Modra)
RGB deluje z mešanjem rdeče, zelene in modre svetlobe - enako kot vaš zaslon prikazuje barve ravno zdaj. Vsaka komponenta se giblje od 0 do 255:
- RGB(255, 0, 0) = čista rdeča
- RGB(0, 255, 0) = čista zelena
- RGB(0, 0, 255) = čista modra
- RGB(255, 255, 255) = bela
- RGB(0, 0, 0) = črna
Kdaj uporabiti RGB: Katerokoli digitalno delo - spletne strani, mobilne aplikacije, video urejanje ali grafike, osnovane na zaslonu. Je naravni jezik prikazovalnikov, zato orodja kot CSS podpirajo rgb() in rgba() funkcije neposredno. Po specifikaciji W3C CSS Color Module je RGB osnovni barvni model za spletne standarde.
Šestnajstiški (Hex)
Hex kode so samo RGB vrednosti, napisane v osnovi 16 namesto osnove 10. Hex barva zgleda kot #FF5733, kjer:
- Symbol
#označuje, da gre za hex kodo - Prve две črke = rdeča (00-FF)
- Srednji dve = zelena (00-FF)
- Zadnji dve = modra (00-FF)
#FF0000= rdeča,#00FF00= zelena,#0000FF= modra
Včasih boste videli 3-mestno krajšavo kot #F00 namesto #FF0000 - to deluje, ko vsak barvni kanal ponovi isto številko.
Kdaj uporabiti Hex: Razvoj spletnih strani je primarni primer uporabe. CSS je vedno podpiral hex notacijo, večina razvijalcev pa jo najde hitrejšo za tipkanje kot rgb(). Pogosta past: pozabljanje simbola # bo tiho pokvarilo vaše sloge, saj jih brskalniki ne bodo prepoznali kot veljavno barvo.
CMYK (Cian, Magenta, Rumena, Ključna/Črna)
CMYK je barvni model, ki ga uporabljajo tiskalniki. Za razliko od RGB (ki dodaja svetlobo), CMYK jo odšteva - z mešanjem črnila na belem papirju ustvarja barve:
- Vsaka komponenta se giblje od 0% do 100%
- CMYK(0, 100, 100, 0) = rdeča
- CMYK(100, 0, 100, 0) = zelena
- CMYK(0, 0, 0, 100) = čisto črno črnilo
- CMYK(0, 0, 0, 0) = brez črnila (skozi papir sveti bela)
Kdaj uporabiti CMYK: Oblikovanje za tisk - vizitke, brošure, revije, embalaža. Tukaj je realnost: mnoge živahne RGB barve preprosto ni mogoče reproducirati s CMYK črnili. Tista svetla električna modra, ki jo vidite na zaslonu? Pri tisku bo videti bolj dolgočasna. Profesionalni oblikovalci vedno pregledajo CMYK pretvorbe pred pošiljanjem datotek v tisk, da se izognejo presenečenjem.
HSV (Odtenek, Nasičenost, Vrednost)
HSV razčleni barvo na tri intuitivne komponente:
- Odtenek: Katera barvna družina (0-360°) - 0° je rdeča, 120° je zelena, 240° je modra
- Nasičenost: Kako živa ali siva (0-100%) - 0% je sivinska, 100% je popolnoma nasičena
- Vrednost: Kako svetla ali temna (0-100%) - 0% je črna, 100% je polna svetlost
Zakaj HSV šteje: Ustreza načinu, kako ljudje naravno razmišljamo o barvi. Želite temnejšo modro? Znižajte vrednost. Želite manj intenzivno modro? Znižajte nasičenost. To naredi HSV idealnega za interaktivne izbirnike barv, kjer izberete odtenek na spektru in prilagodite svetlost s drsnim trakom.
Formule za pretvorbo barv
Izbirnik barv samodejno pretvarja med različnimi barvnimi modeli z uporabo teh matematičnih formul:
Pretvorba RGB v Hex
Za pretvorbo RGB v šestnajstiško:
- Pretvorite vsako RGB komponento (0-255) v dve-mestno šestnajstiško število
- Združite tri šestnajstiške vrednosti s predpono #
Kjer toHex() pretvori decimalno število v njegovo šestnajstiško predstavitev.
Pretvorba RGB v CMYK
Pretvorba iz RGB v CMYK vključuje naslednje korake:
- Normalizacija RGB vrednosti na razpon 0-1
- Izračun črne ključne komponente (K)
- Izračun C, M in Y glede na K
Pretvorba RGB v HSV
Pretvorba RGB v HSV:
Za odtenek (H):
0° & \text{če } \Delta = 0 \\ 60° \times (\frac{G' - B'}{\Delta} \mod 6) & \text{če } C_{max} = R' \\ 60° \times (\frac{B' - R'}{\Delta} + 2) & \text{če } C_{max} = G' \\ 60° \times (\frac{R' - G'}{\Delta} + 4) & \text{če } C_{max} = B' \end{cases}$$ Za nasičenost (S): $$S = \begin{cases} 0 & \text{če } C_{max} = 0 \\ \frac{\Delta}{C_{max}} \times 100\% & \text{sicer} \end{cases}$$ Za vrednost (V): $$V = C_{max} \times 100\%$$ ## Kako uporabljati izbirnik barv Tri načini dela z barvami: kliknite spekter, vnesite natančne vrednosti ali prilagodite s drsnim trakom. Izberite tisti, ki vam bolj ustreza. ### Izbira barv vizualno Kliknite kamorkoli na **barvnem spektru** za izbiro odtenka. Vodoravna pozicija izbira barvni ton (rdeča, zelena, modra itd.), navpična pozicija pa nadzoruje nasičenost (žive vs. izbrisane barve). Predogled se posodobi takoj, tako da vidite natančno, kaj dobivate. Povlecite **drsni trak svetlosti** pod spektrom, da naredite barvo svetlejšo ali temnejšo. To prilagaja komponento "vrednosti" v HSV terminih - levo potemnite, desno poosvetlite. ### Vnos natančnih barvnih vrednosti Že poznate barvo, ki jo potrebujete? Vnesite jo neposredno: **Heksadecimalni format:** Vnesite kode kot `#FF5733`. Lahko vključite ali izpustite `#` - orodje obvlada oboje. Deluje tudi s 3-mestno okrajšavo (`#F37`). **RGB format:** Vnesite vrednosti od 0-255 za rdečo, zeleno in modro. Če pomotoma vnesete 300, bo samodejno omejeno na 255. **CMYK format:** Vnesite odstotke (0-100) za vsako komponento črnila. Uporabno, ko usklajujete barve s specifikacijami tiskarskega oblikovalca. Vsak format posodobi druge v realnem času. Spremenite heksadecimalno kodo, in RGB/CMYK se samodejno prilagodita. ### Kopiranje barvnih kod Kliknite gumb za kopiranje (ikona odložišča) poleg kateregakoli barvnega formata. Videli boste hitro potrditev "Kopirano!", nato pa lahko vrednost prilepite kamorkoli jo potrebujete - CSS datoteke, oblikovalski programi, dokumentacija, kjerkoli. **Namig:** Ko delate z več datotekami ali aplikacijami, imejte to orodje odprto v zavihku brskalnika. Lahko hitro reference in kopirate barvne vrednosti brez menjave konteksta. ## Realne uporabe ### Spletni razvoj Gradite preklop temnega načina in potrebujete barvne variacije. Začnite z primarno barvo vaše blagovne znamke v heksadecimalnem formatu (recimo `#3B82F6`), nato uporabite drsnik svetlosti za ustvarjanje temnejših različic za ozadja (`#1E3A8A`) in svetlejših različic za stanja lebdenja (`#60A5FA`). Vsako heksadecimalno kodo kopirajte neposredno v vaše CSS lastne lastnosti. Pri delu s prosojnostjo pridobite RGB vrednosti in jih uporabite v `rgba()` funkcijah. Na primer, `rgb(59, 130, 246)` postane `rgba(59, 130, 246, 0.8)` za 80% prosojno prekrivanje. Pogost scenarij: Stranka vam posreduje Figma dizajn z barvami, določenimi v RGB, vi pa raje uporabljate heksadecimalne kode v CSS-ju. Pretvorite jih tukaj namesto ročnega računanja. ### Grafično oblikovanje za tisk Tu postane CMYK ključen. Ustvarili ste živahen plakat na zaslonu z RGB barvami, toda pred pošiljanjem v tiskanje preverite CMYK vrednosti. Tista električna cijan barva (RGB 0, 255, 255) se pretvori v CMYK(100, 0, 0, 0) - kar izgleda v redu. Toda tista svetla zaslonska zelena (RGB 0, 255, 0) se lahko pri tisku opazno spremeni. Profesionalen delovni tok: Vnesite svoje zaslonske barve tukaj, zabeležite CMYK pretvorbe, nato jih vizualno primerjajte v CMYK predogledu vašega oblikovalskega programa. Če se barve preveč spremenijo, prilagodite svoje izbire pred dokončanjem dizajna. To preprečuje pogovor "drugače je izgledalo na mojem zaslonu" s tiskarno. ### Oblikovalski sistemi UI/UX Izgradnja oblikovalskega sistema zahteva konsistentne barvne lestvice. Začnite s primarno barvo, nato ustvarite 5-10 variacij svetlosti za različna stanja vmesnika. Drsnik svetlosti to naredi hitro - brez miselnega računanja. Za dostopnost potrebujete zadostno kontrastnost med besedilom in ozadji. Čeprav to orodje ne izračunava razmerij kontrasta (za to potrebujete namenski [WCAG kontrolnik kontrasta](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html)), vam pomaga hitro preizkusiti različne odtenke, dokler ne najdete kombinacij, ki delujejo. Realen scenarij: Vaš primarni gumb uporablja `#2563EB`, toda besedilo na tem ozadju ne izpolnjuje zahtev kontrasta. Posvetlite ozadje ali potemnite besedilo - uporabite predogled za takojšnje testiranje možnosti. ### Digitalna umetnost in ilustracija Delate na digitalni sliki in potrebujete konsistentno barvno harmonijo? Izberite bazni odtenek na spektru, nato ustvarite variacije z nastavljanjem samo nasičenosti in svetlosti. To ohranja vaše barvno paleto kohezivno brez naključnih barvnih skokov. Številni digitalni umetniki imajo med slikanjem odprt barvni izbirač za hitro pridobivanje in pretvarjanje referenčnih barv. Vidite popoln ton sence v referenčni fotografiji? Kliknite ga tukaj (če ste vrednost pridobili drugje), dobite RGB in ga prilepite v Photoshop, Procreate ali Krita. ### Barvno izobraževanje in eksperimentiranje Želite razumeti, kako so si barvni modeli med seboj podobni? Izberite katerokoli barvo in opazujte, kako se njene vrednosti spreminjajo preko RGB, Hex, CMYK in HSV. Opazite, da čista rdeča (RGB 255, 0, 0) ustreza `#FF0000`, toda njen CMYK ekvivalent je 0, 100, 100, 0 - povsem drugačne številke, ki predstavljajo isto zaznano barvo. Ta vizualna povratna informacija pomaga študentom razumeti, zakaj RGB uporablja aditivno mešanje (kombiniranje svetlobe), medtem ko CMYK uporablja subtraktivno mešanje (kombiniranje črnila). Interaktivna narava naredi abstraktne koncepte otipljive. ## Drugi barvni orodji, ki jih boste morda potrebovali To orodje se osredotoča na izbiro in pretvorbo posameznih barv. Glede na vaš projekt boste morda potrebovali tudi: **Generatorji palet** (Adobe Color, Coolors) ko potrebujete več usklajenih barv na podlagi barvne teorije - komplementarne, triadne ali analogne sheme. **Razširitve brskalnika** (ColorZilla, Eye Dropper) za neposredno pridobivanje barv s katerekoli spletne strani ali elementa zaslona. Odlično za ujemanje obstoječih oblikovanj. **Preverjanje kontrasta** za delo na dostopnosti. [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/) preverja, ali vaše kombinacije besedila in ozadja izpolnjujejo standarde WCAG. **Sistemi Pantone/RAL** za natančno ujemanje tiskanih barv med različnimi tiskarskimi delavnicami in materiali. Te fizične barvne vzorčne knjižice zagotavljajo standardizirane reference, ki jih digitalna orodja ne morejo popolnoma reproducirati. ## Dostopne barve Približno 8 % moških in 0,5 % žensk ima neko obliko barvne slepote. Tako lahko oblikujete bolj vključujoče: **Nikoli ne uporabljajte samo barv** za posredovanje pomena. Če vaša oblika prikazuje napake v rdeči, dodajte tudi ikono ali besedilno oznako. Grafikoni z različno obarvanimi črtami? Dodajte vzorce, oznake ali oboje. **Preverite razmerja kontrasta** z orodji, kot je [WebAIM Contrast Checker](https://webaim.org/resources/contrastchecker/). Navadno besedilo potrebuje minimalno razmerje 4,5:1 glede na ozadje, veliko besedilo potrebuje 3:1. Po [smernicah WCAG 2.1](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html) to zagotavlja berljivost za uporabnike z zmerno slabim vidom. **Izogibajte se problematičnim kombinacijam:** Rdeče-zelena je najpogostejša težava (protanopija in deuteranopija vplivata na zaznavanje rdeče in zelene). Modro-rumena povzroča težave ljudem s tritanopijo. Preizkusite svoje oblike s simulatorji, kot je [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/), da vidite, kako izgledajo za uporabnike z različnimi vrstami barvne slepote. **Uporabljajte palete, prijazne barvno slepim**, kadar je mogoče. Modre, oranžne in rumene barve običajno dobro delujejo skupaj, ker jih je mogoče razlikovati pri večini vrst barvne slepote. ## Pogosto zastavljena vprašanja ### Kakšna je razlika med RGB in CMYK? RGB je namenjen zaslonom, CMYK pa tisku. Zasloni ustvarjajo barve z oddajanjem rdeče, zelene in modre svetlobe (aditivno mešanje), medtem ko tiskalniki ustvarjajo barve z nanašanjem cian, magenta, rumenih in črnih črnил na papir (subtraktivno mešanje). RGB lahko ustvari svetlejše in bolj žive barve kot CMYK, ker ima svetloba širši barvni razpon kot črnilo. Zato se barve na zaslonu pogosto zdijo bolj dolgočasne, ko so natisnjene. ### Zakaj moje barve izgledajo drugače, ko so natisnjene? Zasloni oddajajo svetlobo, papir jo odbija - gre za povsem različne procese. Poleg tega RGB obravnava milijone barv, ki jih črnila CMYK preprosto ne morejo reproducirati. Kalibracija zaslona, kakovost papirja in variacije črnila dodajajo še več spremenljivosti. Vedno preverite vrednosti CMYK pred tiskom in zahtevajte fizične dokaze za kritično ujemanje barv. ### Kako pridobim heksadecimalne kode barv, ki jih vidim na spletu? Uporabite razvojna orodja brskalnika. V Chrome ali Firefox desno kliknite katerikoli element, izberite "Preglej", nato kliknite majhen barvni kvadratek v plošči slogov. To odpre barvni izbirnik, ki prikazuje heksadecimalno kodo. Razširitve brskalnika, kot je ColorZilla, to naredijo še hitreje - omogočajo vam, da kliknete kamorkoli na strani in pridobite vrednost barve. ### Kaj pomeni simbol # v heksadecimalnih kodah? Gre le za predpono, ki brskalniku sporoča "to je heksadecimalna barvna koda". Standard izhaja iz zgodnjih HTML in CSS specifikacij. Šest znakov za `#` predstavlja RGB vrednosti v osnovi 16: dva znaka za rdečo, dva za zeleno, dva za modro. Brez `#` brskalniki ne prepoznajo kode kot barve. ### Zakaj delujejo 3-mestne heksadecimalne kode? So bližnjica za primere, ko se vsak barvni kanal ponovi. `#F00` se razširi v `#FF0000` (rdeča), `#C9C` postane `#CC99CC` (svetlo vijolična). Ta bližnjica je bila ustvarjena v 90-ih letih, da bi zmanjšala velikost datotek, ko je bila pasovna širina draga. Še vedno je priročna za preproste barve. ### So pretvorbe barv natančne? Pretvorbe RGB v heksadecimalno so matematično točne - gre za iste vrednosti v različnih številskih sistemih. Pretvorbe RGB v CMYK so približki, ker pretvarjate med povsem različnimi barvnimi prostori (svetloba vs. črnilo). Orodje uporablja [ICC standarde barvnih profilov](http://www.color.org/specification/ICC1v42_2006-05.pdf) za te pretvorbe, kar je enak pristop, ki ga uporabljajo profesionalni programi za oblikovanje. ### Kako ustvarim dostopne barvne kombinacije? Uporabite pregledovalnik kontrasta, kot je [WebAIM-ovo orodje](https://webaim.org/resources/contrastchecker/), potem ko izberete barve. Za navadno besedilo potrebujete razmerje 4,5:1, za veliko besedilo 3:1. Izogibajte se kombinacijam rdeče-zelene (najtežje za barvno slepe uporabnike). Če ste v dvomih, temnejše besedilo na svetlejših ozadjih ali obratno - pomembna je zadostna razlika v luminanci. ### Ali lahko izbiram barve iz slik? Ne neposredno v tem orodju. Uporabite razširitev brskalnika, kot je ColorZilla, ali posnemite sliko in uporabite barvni izbirnik vašega operacijskega sistema (Digital Color Meter na macOS, PowerToys Color Picker na Windows). Ko dobite vrednost barve, jo vnesite sem za pretvorbo med formati. ### Zakaj se nekatere RGB barve slabo pretvarjajo v CMYK? CMYK ima ožji "gamut" (razpon reproducibilnih barv) kot RGB. Svetlo modre, žive zelene in električno oranžne barve pogosto presegajo tisto, kar lahko fizično ustvarijo črnila CMYK. Ko se to zgodi, tiskalnik nadomesti najbližjo možno ujemajočo barvo, ki običajno zgleda manj nasičeno. Profesionalni oblikovalci za tisk pogosto začnejo z CMYK-varnimi barvami, da se izognejo tej težavi. ## Primeri kode za pretvorbe barv Tukaj so primeri kode, ki prikazujejo, kako pretvarjati med različnimi barvnimi formati:1// Pretvorba RGB v Hex
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// Pretvorba Hex v RGB
12function hexToRgb(hex) {
13 // Odstrani # če je prisoten
14 const cleanHex = hex.startsWith('#') ? hex.slice(1) : hex;
15
16 // Obravnava 3-mestne in 6-mestne hex vrednosti
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// Pretvorba RGB v CMYK
29function rgbToCmyk(r, g, b) {
30 // Normalizacija RGB vrednosti
31 const normalizedR = r / 255;
32 const normalizedG = g / 255;
33 const normalizedB = b / 255;
34
35 // Izračun K (črna)
36 const k = 1 - Math.max(normalizedR, normalizedG, normalizedB);
37
38 // Obravnava čiste črne
39 if (k === 1) {
40 return { c: 0, m: 0, y: 0, k: 100 };
41 }
42
43 // Izračun 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// Primer uporabe
57const rgb = { r: 255, g: 0, b: 0 }; // Čista rdeča
58console.log(`Hex: ${rgbToHex(rgb.r, rgb.g, rgb.b)}`);
59console.log(`CMYK:`, rgbToCmyk(rgb.r, rgb.g, rgb.b));
601# Pretvorba RGB v Hex
2def rgb_to_hex(r, g, b):
3 return f'#{r:02x}{g:02x}{b:02x}'
4
5# Pretvorba Hex v RGB
6def hex_to_rgb(hex_color):
7 # Odstrani # če je prisoten
8 hex_color = hex_color.lstrip('#')
9
10 # Obravnava 3-mestne in 6-mestne hex vrednosti
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# Pretvorba RGB v CMYK
21def rgb_to_cmyk(r, g, b):
22 # Normalizacija RGB vrednosti
23 r_norm = r / 255
24 g_norm = g / 255
25 b_norm = b / 255
26
27 # Izračun K (črna)
28 k = 1 - max(r_norm, g_norm, b_norm)
29
30 # Obravnava čiste črne
31 if k == 1:
32 return {'c': 0, 'm': 0, 'y': 0, 'k': 100}
33
34 # Izračun 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# Primer uporabe
47rgb = {'r': 0, 'g': 128, 'b': 255} # Modro nebo
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 // Pretvorba RGB v Hex
3 public static String rgbToHex(int r, int g, int b) {
4 return String.format("#%02x%02x%02x", r, g, b);
5 }
6
7 // Pretvorba Hex v RGB
8 public static int[] hexToRgb(String hexColor) {
9 // Odstrani # če je prisoten
10 if (hexColor.startsWith("#")) {
11 hexColor = hexColor.substring(1);
12 }
13
14 // Obravnava 3-mestne in 6-mestne hex vrednosti
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 // Pretvorba RGB v CMYK
31 public static double[] rgbToCmyk(int r, int g, int b) {
32 // Normalizacija RGB vrednosti
33 double normalizedR = r / 255.0;
34 double normalizedG = g / 255.0;
35 double normalizedB = b / 255.0;
36
37 // Izračun K (črna)
38 double k = 1 - Math.max(Math.max(normalizedR, normalizedG), normalizedB);
39
40 // Obravnava čiste črne
41 if (k == 1) {
42 return new double[]{0, 0, 0, 100};
43 }
44
45 // Izračun 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 // Primer uporabe
60 int r = 75, g = 0, b = 130; // Vijolična
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}
69Reference in nadaljnje branje
- W3C CSS Color Module Level 4 - Uradna specifikacija spletnih barv
- WCAG 2.1 Smernice za kontrast - Standardi dostopnosti za barvni kontrast
- WebAIM Preverjanje kontrasta - Preizkusite razmerja barvnega kontrasta
- ICC Standardi barvnih profilov - Tehnična specifikacija za pretvorbe barv
- MDN Spletna dokumentacija: CSS barvne vrednosti - Celovit vodnik po formatih spletnih barv