Zana ya Kuchagua Rangi - Kubadilisha Misimbo ya Rangi RGB, Hex, CMYK na HSV
Kichagua rangi mtandaoni bure chenye kubadilisha RGB, Hex, CMYK, na HSV mara moja. Bonyeza spektra ili kuchagua rangi kwa kuona au ingiza thamani sahihi. Nakili umbizo lolote kwa kubonyeza mara moja kwa disaini ya wavuti, kuchapa, na miradi ya dijitali.
Kuchagua Rangi
RGB (0-255)
CMYK (0-100)
Kuchagua Rangi
Nyaraka
Unachoweza Kufanya na Kuchagua Rangi Hii
Unahitaji kiasi cha rangi kamili kwa mradi wako? Kichagua rangi hiki kinakuruhusu kuchagua, kuangalia kabla, na kubadilisha rangi kati ya umbizo la RGB, Hex, CMYK, na HSV mara moja. Iwe wewe unakodi tovuti, kutengeneza nembo, au kuandaa faili za kuchapisha, utapata thamani za rangi sahihi unazohitaji—bila kubuni, bila kubadilisha vifaa mbalimbali.
Bonyeza popote kwenye spetoramu ya rangi ili kuchagua kiasi, rekebisha mwangaza kwa kitufe cha kubadilisha, au ingiza thamani sahihi moja kwa moja. Umbizo zote huboreshwa mara moja, na unaweza kunakili kanuni ya rangi kwa kubonyeza mara moja.
Kuelewa Mifumo ya Rangi
Miradi tofauti inahitaji umbizo tofauti la rangi. Hapa ni kile ambacho kila moja kinafanya na lini ya kuutumia:
RGB (Nyekundu, Kijani, Buluu)
RGB inafanya kazi kwa kuchanganya mwanga wa nyekundu, kijani, na buluu—kwa njia sawa ambavyo skrini yako inaonyesha rangi sasa. Kila sehemu inakuwa kati ya 0 na 255:
- RGB(255, 0, 0) = nyekundu safi
- RGB(0, 255, 0) = kijani safi
- RGB(0, 0, 255) = buluu safi
- RGB(255, 255, 255) = nyeupe
- RGB(0, 0, 0) = nyeusi
Lini ya kutumia RGB: Kazi yoyote ya dijitali—wavuti, programu za simu, kuhariri video, au grafu zinazoendana na skrini. Ni lugha asili ya vipimo, ambayo ndio sababu zana kama CSS zinaunga mkono moja kwa moja rgb() na rgba(). Kulingana na specifikesheni ya Moduli ya Rangi ya W3C CSS, RGB ni mfumo msingi wa rangi kwa viwango vya wavuti.
Hexadecimal (Hex)
Misimbo ya Hex ni tu maadili ya RGB yaliyoandikwa kwa msingi wa 16 badala ya 10. Rangi ya hex inaonekana kama #FF5733, ambapo:
- Alama ya
#inamashirikisha kuwa ni msimbo wa hex - Herufi mbili za kwanza = nyekundu (00-FF)
- Mbili za kati = kijani (00-FF)
- Mbili za mwisho = buluu (00-FF)
#FF0000= nyekundu,#00FF00= kijani,#0000FF= buluu
Wakati mwingine utaona ufupi wa vibambo 3 kama #F00 badala ya #FF0000—hii inafanya kazi pale ambapo kila sehemu ya rangi inauza tarakimu sawa.
Lini ya kutumia Hex: Maendeleo ya wavuti ndio mhimili wake. CSS imekuwa imeusaidia muda wote, na wasanidi wengi wanaiona kuwa ni haraka kuandika kuliko rgb(). Jambo la kawaida: kusahau alama ya # litavusha mitindo yako kimya, kwa sababu vifunguo havitaitambui kama rangi halali.
CMYK (Cyan, Magenta, Yellow, Key/Black)
CMYK ni mfumo wa rangi unaotumika na vichapishaji. Tofauti na RGB (ambayo huongeza mwanga), CMYK huutoa—kwa kuchanganya rangi juu ya karatasi nyeupe:
- Kila sehemu inakuwa kati ya 0% na 100%
- CMYK(0, 100, 100, 0) = nyekundu
- CMYK(100, 0, 100, 0) = kijani
- CMYK(0, 0, 0, 100) = rangi ya nyeusi safi
- CMYK(0, 0, 0, 0) = hakuna rangi (karatasi nyeupe inaonekana)
Lini ya kutumia CMYK: Kububu kwa ajili ya kuchapisha—kadi za biashara, risala, magazeti, vifungu. Ukweli ni: rangi nyingi za RGB haziwezi kuzungushwa na rangi za CMYK. Buluu ya kielektroniki ya kuvutia ambayo unaiona skrini? Itaonekana isiyo na nguvu pale inapochapishwa. Wasanidi wa kitaalamu huangalia mabadiliko ya CMYK kabla ya kutuma faili ili kuepuka mshangao.
HSV (Hue, Saturation, Value)
HSV huibua rangi katika sehemu tatu za kifahamu:
- Hue: Familia gani ya rangi (0-360°)—0° ni nyekundu, 120° ni kijani, 240° ni buluu
- Saturation: Kiasi cha kuvutia au kijivu (0-100%)—0% ni kijivu, 100% ni rangi kamili
- Value: Kiasi cha mwanga au giza (0-100%)—0% ni nyeusi, 100% ni mwanga kamili
Kwa nini HSV ina umuhimu: Inaendana na jinsi wanadamu wanavyofikiria rangi kwa asili. Unataka buluu iliyo giza? Punguza thamani. Unataka buluu isiyo kuvutia sana? Punguza saturation. Hii inafanya HSV iwe ya muhimu sana kwa vichaguzi vya rangi vya interactive kama hili, ambapo unachagua hue kwenye spectrum na kubadilisha mwanga kwa kipimo.
Mbadala wa Rangi ya Hesabu
Kichagua rangi kinahudumu kubadilisha kati ya mifumo tofauti ya rangi kwa kutumia hesabu hizi:
Kubadilisha RGB hadi Hex
Kubadilisha RGB hadi hexadecimal:
- Badilisha kila sehemu ya RGB (0-255) hadi namba ya hexadecimal ya tarakimu mbili
- Unganisha thamani tatu za hexadecimal na eneo la # mbele
Ambapo toHex() inabadilisha namba ya desimali hadi kiwakilishi chake cha hexadecimal.
Kubadilisha RGB hadi CMYK
Kubadilisha RGB hadi CMYK inajumuisha hatua hizi:
- Sawazisha thamani za RGB hadi kiwango cha 0-1
- Husaba sehemu ya black key (K)
- Husaba C, M, na Y kulingana na K
Kubadilisha RGB hadi HSV
Kubadilisha RGB hadi HSV:
Kwa Hue (H):
0° & \text{ikiwa } \Delta = 0 \\ 60° \times (\frac{G' - B'}{\Delta} \mod 6) & \text{ikiwa } C_{max} = R' \\ 60° \times (\frac{B' - R'}{\Delta} + 2) & \text{ikiwa } C_{max} = G' \\ 60° \times (\frac{R' - G'}{\Delta} + 4) & \text{ikiwa } C_{max} = B' \end{cases}$$ Kwa Saturation (S): $$S = \begin{cases} 0 & \text{ikiwa } C_{max} = 0 \\ \frac{\Delta}{C_{max}} \times 100\% & \text{vinginevyo} \end{cases}$$ Kwa Value (V): $$V = C_{max} \times 100\%$$ ## Jinsi ya Kutumia Kuchagua Rangi Njia tatu za kufanya kazi na rangi: bonyeza spektra, andika thamani sahihi, au badilisha kwa kislideri. Chagua ile ambayo hufurahia katika mfumo wako wa kazi. ### Chagua Rangi kwa Kuona Bonyeza popote kwenye **spektra ya rangi** ili uchague toni. Nafasi ya mlalo inachagua hue (nyekundu, kijani, buluu, n.k.), wakati nafasi ya wima inashika saturation (rangi yenye nguvu au iliyopunguzwa). Kielelezo kinaasisha mara moja ili uone kikamilifu unachotaka. Vuta **kislideri cha mwangaza** chini ya spektra ili ufanye rangi yako iwe nyeupe au nyeusi. Hii inabadilisha sehemu ya "thamani" kwa masharti ya HSV—kushoto kunakopiza, kulia kunainua. ### Ingiza Thamani Sahihi za Rangi Tayari unajua rangi unayohitaji? Iandike moja kwa moja: **Umbizo wa Hex:** Ingiza misimbo kama `#FF5733`. Unaweza kuwa na au kuondoa `#`—chombo kinashughulikia zote mbili. Inafanya kazi pia na nembo ya tarakimu 3 (`#F37`). **Umbizo wa RGB:** Andika thamani kutoka 0-255 kwa nyekundu, kijani, na buluu. Ikiwa kwa makosa utaingia 300, itakuza moja kwa moja hadi 255. **Umbizo wa CMYK:** Ingiza asilimia (0-100) kwa kila kijenzi cha uchapishaji. Muhimu sana unaposhirikiana na mchapishaji wa kubuni. Kila umbizo huasisha mengine mara moja. Badilisha msimbo wa hex, na RGB/CMYK zitabadilika moja kwa moja. ### Nakili Misimbo ya Rangi Bonyeza kitufe cha kunakili (aikoni ya clipboard) karibu na umbizo lolote la rangi. Utaona uthibitisho wa haraka wa "Imenakiliwa!", kisha unaweza kuunakili popote ulipo—faili za CSS, programu za kubuni, nyaraka, popote. **Kidokezo cha kitaalamu:** Unapofanya kazi kwenye faili au programu kadhaa, shikilia huu chombo wazi kwenye kichupo cha kivinjari. Unaweza haraka kuangalia na kunakili thamani za rangi bila kubadilisha muktadha. ## Matumizi Halisi ya Dunia ya Kweli ### Maendeleo ya Wavuti Unajengwa kigezo cha mwanga wa giza na unahitaji tofauti za rangi. Anza na rangi ya msingi ya biashara yako katika umbizo la hex (kwa mfano, `#3B82F6`), kisha tumia kigezo cha uelewa wa kigiza ili uzalishie maudhui meusi zaidi kwa mandhari (`#1E3A8A`) na maudhui meupe zaidi kwa hali za kubana (`#60A5FA`). Nakili kila msimbo wa hex moja kwa moja kwenye mali zako za kawaida za CSS. Unaposhughulikia uwazi, pata thamani za RGB na uzitumie katika kazi za `rgba()`. Kwa mfano, `rgb(59, 130, 246)` hubadilika kuwa `rgba(59, 130, 246, 0.8)` kwa kuvunja kwa 80% ya mandhari. Hali ya kawaida: Mteja anakupatia muundo wa Figma wenye rangi zilizobainishwa kwa RGB, lakini wewe unakusudia msimbo wa hex katika CSS yako. Ubadilishe hapa badala ya kuhesabu kwa mkono. ### Disaini ya Kografiki kwa Kuchapisha Hapa CMYK inakuwa muhimu sana. Umeshapangia poster yenye nguvu kwenye skrini kwa rangi za RGB, lakini kabla ya kuipeleka kwa kuchapisha, kagua thamani za CMYK. Jekundu ya kielektroniki (RGB 0, 255, 255) inabadilika kuwa CMYK(100, 0, 0, 0)—ambayo inaonekana sawa. Lakini kijani cha skrini (RGB 0, 255, 0) kinaweza kubadilika sana unapochapisha. Mfumo wa kitaalamu: Ingiza rangi zako za skrini hapa, kumbuka kubadilisha CMYK, kisha linganisha kwa kimaono katika hali ya kihakiki ya CMYK ya programu yako ya disaini. Ikiwa rangi zinabadilika sana, rekebisha chaguo zako kabla ya kumaliza disaini. Hii inahindaa mazungumzo ya "ilikuwa tofauti kwenye skrini yangu" na kuchapisha. ### Mifumo ya Disaini ya UI/UX Kujenga mfumo wa disaini unahitaji viwango vya rangi vya msingi. Anza na rangi ya msingi, kisha unda tofauti 5-10 za uelewa kwa hali tofauti za UI. Kigezo cha uelewa kinafanya hili haraka—bila kuhitaji kufanya hesabu kwa akili. Kwa upatikanaji, utahitaji tofauti ya kutosha kati ya maandishi na mandhari. Ingawa zana hii haihesabi viwango vya tofauti (utahitaji [kiangalia WCAG](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html)), inakusaidia kuchunguza maudhui tofauti mpaka utapata mchanganyiko unaoendana. Hali halisi: Kitufe chako cha msingi kinatumia `#2563EB`, lakini maandishi juu ya mandhari hiyo hayaendani na mahitaji. Egesha mandhari au kunja maandishi—tumia kihakiki ili upime chaguo haraka. ### Sanaa Dijitali na Michoro Unafanya uchoraji dijitali na unahitaji utunzaji wa rangi? Chagua msingi wa rangi kwenye spectrum, kisha unda tofauti kwa kubadilisha tu usawiri na uelewa. Hii inashikilia mfumo wako wa rangi kuwa wa msingi bila kuruka rangi kwa nasibu. Wasanifu wengi wa dijitali huiweka kigezo cha rangi wazi wakati wa kuchora ili kuchukua na kubadilisha rangi za kumbukumbu haraka. Unaona toni ya kivuli kibaya katika picha ya kumbukumbu? Bonyeza hapa, pata RGB, kisha uingize kwenye Photoshop, Procreate, au Krita. ### Elimu ya Rangi na Jaribio Unataka kuelewa jinsi mifumo ya rangi inavyohusiana? Chagua rangi yoyote na angalia jinsi thamani zake zinavyobadilika kati ya RGB, Hex, CMYK, na HSV. Kumbuka kuwa nyekundu safi (RGB 255, 0, 0) sawa na `#FF0000`, lakini sawa yake ya CMYK ni 0, 100, 100, 0—namba tofauti kabisa zinawakilisha rangi moja. Maelezo ya kimaono haya husaidia wanafunzi kuelewa kwa nini RGB inatumia mchanganyiko wa ziada (kuunganisha mwanga) wakati CMYK inatumia mchanganyiko wa chini (kuunganisha rangi). Uelewa wa kufanya jambo linakuwa rahisi. ## Zana Nyingine za Rangi Unazoweza Kuhitaji Zana hii inalenga kuchagua na kubadilisha rangi binafsi. Kutegemea mradi wako, unaweza pia kuhitaji: **Waundaji wa paleti** (Adobe Color, Coolors) wakati unahitaji rangi nyingi zenye utawala kulingana na nadharia ya rangi—mifano ya ziada, triadic, au mifumo ya sawa. **Viambatanishi vya kivinjari** (ColorZilla, Eye Dropper) ili kuchukua rangi moja kwa moja kutoka ukurasa wowote au sehemu ya skrini. Nzuri sana kwa kulingana na muundo uliopo. **Vipimaji vya tofauti** kwa kazi ya upatikanaji. [Kipimaji cha Tofauti cha WebAIM](https://webaim.org/resources/contrastchecker/) huchunguza ikiwa mchanganyiko wako wa maandishi/usuli unakidhi viwango vya WCAG. **Mifumo ya Pantone/RAL** kwa kufuatilia rangi za kuchapisha kwa usahihi katika maduka ya uchapishaji na nyenzo tofauti. Vitabu hivi vya sampuli zinapatikana kama virasimu vya viwango ambavyo zana za dijitali haziwezi kurejelea kikamilifu. ## Kuifanya Rangi Ziwe Za Upatikanaji Kama 8% ya wanaume na 0.5% ya wanawake wana aina fulani ya udhaifu wa kuona rangi. Hapa ni jinsi ya kubuni kwa njia ya kuchangia: **Kamwe usitumie rangi pekee** ili kuwasilisha maana. Ikiwa fomu yako inaonyesha makosa kwa rangi nyekundu, ongeza pia aikoni au lebo ya maandishi. Chati zenye mistari ya rangi tofauti? Ongeza mifumo, lebo, au zote mbili. **Kagua viwango vya tofauti** kwa kutumia zana kama [Kiangushi cha Tofauti cha WebAIM](https://webaim.org/resources/contrastchecker/). Maandishi ya kawaida yanahitaji kiwango cha chini cha 4.5:1 dhidi ya usuli wake, maandishi makubwa yanahitaji 3:1. Kulingana na [mwongozo wa WCAG 2.1](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html), hii inahakikisha upatikanaji kwa watumiaji wenye mandhari ya kuona ya kati. **Epuka mchanganyiko ya matatani:** Nyekundu-kijani ndiyo tatizo la kawaida zaidi (protanopia na deuteranopia zinaathiri ufahamu wa nyekundu na kijani). Buluu-manjano husababisha matatizo kwa watu wenye tritanopia. Jaribu muundo wako kwa simuleitara kama [Coblis](https://www.color-blindness.com/coblis-color-blindness-simulator/) ili kuona jinsi ilivyo kwa watumiaji wenye aina tofauti za udhaifu wa kuona rangi. **Tumia mifumo ya rangi rafiki kwa watu wenye udhaifu wa kuona rangi** pale inapowezekana. Buluu, machungwa, na manjano kwa kawaida husaidiana vizuri kwa sababu zinaweza kugawanyika katika aina nyingi za udhaifu wa kuona rangi. ## Maswali Yanayoulizwa Mara Kwa Mara ### Tofauti gani kati ya RGB na CMYK? RGB ni kwa skrini, CMYK ni kwa kuchapisha. Skrini hutumba rangi kwa kuchukua mwanga nyekundu, kijani, na buluu (mchanganyiko wa ziada), wakati vichapishi hutumba rangi kwa kuunganisha rangi ya cyan, magenta, yellow, na black juu ya karatasi (mchanganyiko wa chini). RGB inaweza kuzalisha rangi zenye nguvu zaidi kuliko CMYK kwa sababu mwanga una ukubwa wa rangi zaidi kuliko rangi ya chapa. Hii ndiyo sababu rangi zako za skrini mara nyingi huonekana zisio na nguvu sana unapochapisha. ### Kwa nini rangi zangu zinaonekana tofauti unapochapisha? Skrini hutuma mwanga, karatasi hurudisha—mchakato tofauti kabisa. Pia, RGB inashughulikia rangi milioni ambazo CMYK haziwezi kuzalisha. Usawazishaji wa skrini, ubora wa karatasi, na tofauti za rangi ya chapa huongeza tofauti zaidi. Daima kagua maadili ya CMYK kabla ya kuchapisha, na uliza vipimo halisi kwa kazi muhimu ya kulingana na rangi. ### Namna gani nitapata misimbo ya hex kutoka rangi ninazoziona mtandaoni? Tumia zana za wasanidi wa kivinjari. Katika Chrome au Firefox, bofya kulia kipengee yoyote, chagua "Chunguza," kisha bofya mraba mdogo wa rangi katika paneli ya mitindo. Hii itafungua kichagua rangi ambacho kinaonyesha msimbo wa hex. Nyambuliko za kivinjari kama vile ColorZilla zinafanya hili pia haraka—zinakuruhusu kubofya mahali popote ukipata thamani ya rangi. ### Ni nini maana ya alama ya # katika misimbo ya hex? Ni kiambishi tu kinachomwambia kivinjari "hii ni msimbo wa rangi wa hexadecimal". Kiwango hiki kinatokea kutoka katika specifikation za HTML na CSS za mapema. Herufi sita baada ya `#` zinawakilisha thamani za RGB katika msingi wa 16: tarakimu mbili kwa nyekundu, mbili kwa kijani, mbili kwa buluu. Bila `#`, vivinjari havitaitambua kama rangi. ### Kwa nini misimbo ya hex ya tarakimu 3 inafanya kazi? Ni njia fupi ya kuonyesha pale kila channel ya rangi inavyorudiwa. `#F00` inakuza hadi `#FF0000` (nyekundu), `#C9C` inakuwa `#CC99CC` (purple nyeupe). Njia fupi hii iliundwa miaka ya 1990 kupunguza ukubwa wa faili pale pesa ya mtandao zilikuwa ghali. Bado ni rahisi leo kwa rangi rahisi. ### Je, kubadilisha rangi ni sahihi? Kubadilisha RGB-hadi-hex ni kikamilifu—ni thamani sawa katika msingi tofauti wa nambari. Kubadilisha RGB-hadi-CMYK ni tahmini kwa sababu unabadilisha kati ya nafasi tofauti za rangi (mwanga dhidi ya rangi ya chapa). Zana hutumia [viwango vya profaili ya rangi ya ICC](http://www.color.org/specification/ICC1v42_2006-05.pdf) kwa kubadilisha, ambavyo ndiyo mbinu ya programu ya kubuni ya kitaalamu. ### Namna gani nitaunda mchanganyiko ya rangi zinazopatikana? Tumia kiangushi ya tofauti kama [zana ya WebAIM](https://webaim.org/resources/contrastchecker/) baada ya kuchagua rangi hapa. Unahitaji uhusiano wa 4.5:1 kwa maandishi ya kawaida, 3:1 kwa maandishi makubwa. Epuka mchanganyiko wa nyekundu-kijani (vigumu sana kwa watumiaji wenye upofu wa rangi). Pale usipojua, maandishi meusi juu ya mandhari nyeupe au kinyume—tofauti ya mwanga ya kutosha ndiyo muhimu sana. ### Je, naweza kuchagua rangi kutoka picha? Sio moja kwa moja katika zana hii. Tumia nyambuliko ya kivinjari kama ColorZilla, au chukua picha na tumia kichagua rangi cha mfumo wako wa uendeshaji (Digital Color Meter kwenye macOS, PowerToys Color Picker kwenye Windows). Pale utakapopata thamani ya rangi, ingiza hapa kubadilisha kati ya maumbo. ### Kwa nini rangi zingine za RGB hazibadilishi vizuri hadi CMYK? CMYK ina "gamut" ndogo (kiwango cha rangi zinazoweza kuzalishwa) kuliko RGB. Rangi za buluu zenye nguvu, kijani vya kuvutia, na machungwa ya elektriki mara nyingi huwa nje ya kile ambacho rangi ya chapa inaweza kimwili kuzalisha. Pale hili hutokea, kichapishi hutumia kubadilisha kwa karibu zaidi, ambayo kawaida huonekana isiyo na nguvu. Wasanidi wa kuchapisha wa kitaalamu mara nyingi huanza na rangi salama za CMYK ili kuepuka tatizo hili. ## Mifano ya Msimbo wa Kubadilisha Rangi Hapa kuna baadhi ya mifano ya msimbo inayoonyesha jinsi ya kubadilisha kati ya umbizo tofauti la rangi:1// Kubadilisha RGB hadi 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// Kubadilisha Hex hadi RGB
12function hexToRgb(hex) {
13 // Ondoa # ikiwa ipo
14 const cleanHex = hex.startsWith('#') ? hex.slice(1) : hex;
15
16 // Shughulikia hex ya tarakimu 3 na 6
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// Kubadilisha RGB hadi CMYK
29function rgbToCmyk(r, g, b) {
30 // Kuunganisha thamani za RGB
31 const normalizedR = r / 255;
32 const normalizedG = g / 255;
33 const normalizedB = b / 255;
34
35 // Hesabu K (nyeusi)
36 const k = 1 - Math.max(normalizedR, normalizedG, normalizedB);
37
38 // Shughulikia nyeusi safi
39 if (k === 1) {
40 return { c: 0, m: 0, y: 0, k: 100 };
41 }
42
43 // Hesabu 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// Mfano wa matumizi
57const rgb = { r: 255, g: 0, b: 0 }; // Nyekundu safi
58console.log(`Hex: ${rgbToHex(rgb.r, rgb.g, rgb.b)}`);
59console.log(`CMYK:`, rgbToCmyk(rgb.r, rgb.g, rgb.b));
601# Kubadilisha RGB hadi Hex
2def rgb_to_hex(r, g, b):
3 return f'#{r:02x}{g:02x}{b:02x}'
4
5# Kubadilisha Hex hadi RGB
6def hex_to_rgb(hex_color):
7 # Ondoa # ikiwa ipo
8 hex_color = hex_color.lstrip('#')
9
10 # Shughulikia hex ya tarakimu 3 na 6
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# Kubadilisha RGB hadi CMYK
21def rgb_to_cmyk(r, g, b):
22 # Kuunganisha thamani za RGB
23 r_norm = r / 255
24 g_norm = g / 255
25 b_norm = b / 255
26
27 # Hesabu K (nyeusi)
28 k = 1 - max(r_norm, g_norm, b_norm)
29
30 # Shughulikia nyeusi safi
31 if k == 1:
32 return {'c': 0, 'm': 0, 'y': 0, 'k': 100}
33
34 # Hesabu 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# Mfano wa matumizi
47rgb = {'r': 0, 'g': 128, 'b': 255} # Samawati
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 // Kubadilisha RGB hadi 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 // Kubadilisha Hex hadi RGB
8 public static int[] hexToRgb(String hexColor) {
9 // Ondoa # ikiwa ipo
10 if (hexColor.startsWith("#")) {
11 hexColor = hexColor.substring(1);
12 }
13
14 // Shughulikia hex ya tarakimu 3 na 6
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 // Kubadilisha RGB hadi CMYK
31 public static double[] rgbToCmyk(int r, int g, int b) {
32 // Kuunganisha thamani za RGB
33 double normalizedR = r / 255.0;
34 double normalizedG = g / 255.0;
35 double normalizedB = b / 255.0;
36
37 // Hesabu K (nyeusi)
38 double k = 1 - Math.max(Math.max(normalizedR, normalizedG), normalizedB);
39
40 // Shughulikia nyeusi safi
41 if (k == 1) {
42 return new double[]{0, 0, 0, 100};
43 }
44
45 // Hesabu 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 // Mfano wa matumizi
60 int r = 75, g = 0, b = 130; // Zambarau
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}
69Marejeleo na Kusoma Zaidi
- Moduli ya Rangi ya CSS ya W3C Kiwango cha 4 - Ubainishaji rasmi wa rangi ya wavuti
- Mwongozo wa WCAG 2.1 wa Tofauti - Viwango vya upatikanaji wa tofauti ya rangi
- Kichanganuzi cha WebAIM cha Tofauti - Jaribisha viwango vya tofauti ya rangi
- Viwango vya Profaili ya Rangi ya ICC - Ubainishaji wa kiufundi wa kubadilisha rangi
- Hati za Wavuti za MDN: Thamani za Rangi za CSS - Mwongozo kamili wa umbizo la rangi ya wavuti