RGB to CMYK Converter
Enter a screen colour as RGB or hex and get cyan, magenta, yellow and black percentages. This is the standard textbook formula; for a print job, ask the printer for their profile.
Hex, rgb(), hsl(), cmyk(), oklch() or a CSS name.
CMYK of #009688
100, 0, 9, 41%
Cyan, magenta, yellow and black ink, by the standard formula (no print profile).
- HEX#009688
- RGBrgb(0, 150, 136)
- HSLhsl(174, 100%, 29%)
- HSVor HSBhsv(174, 100%, 59%)
- CMYKnaive, no profilecmyk(100%, 0%, 9%, 41%)
- OKLCHoklch(60.5% 0.107 183.4)
- LABCIELAB, D65lab(55.7% -36.7 -2.1)
- CSS nameclosestdarkcyan
How this works: Method, 8 sources, Checked against 2 worked examples,
How this works
Method
Screens make colour by adding red, green and blue light; printers make it by laying cyan, magenta and yellow ink on white paper, each ink absorbing one of the screen primaries. Black ink, K for key, replaces equal amounts of the three, because three inks on top of each other make a muddy dark brown, not a crisp black, and use far more ink. Full method
Sources
- Wikipedia, CMYK color model
- International Color Consortium, ICC profiles
- W3C: WCAG 2.1, Success Criterion 1.4.3 Contrast (Minimum)
- W3C, WCAG 2.2: definitions of contrast ratio and relative luminance
- W3C, CSS Color Module Level 4
- Björn Ottosson (2020), A perceptual color space for image processing
- Myndex, SAPC-APCA documentation (APCA-W3 0.0.98G-4g)
- Machado, Oliveira and Fernandes (2009), A Physiologically-based Model for Simulation of Color Vision Deficiency
How it’s tested
2 worked examples for this page are checked by automated tests before every release: given the inputs, the tool must show the expected answer.
Changes
- Added eight pages: a colour picker for photos, a WCAG 2.2 and APCA contrast checker, a palette generator, a colour blindness simulator, and hex, RGB and CMYK converters.
- Redesigned: paste a colour in any format, HSV and CMYK added, opacity, a contrast check against white and black text, and colour harmonies.
- Fixed a crash when opening the colour picker.
- First published.
How to convert RGB to CMYK
Screens make colour by adding red, green and blue light; printers make it by laying cyan, magenta and yellow ink on white paper, each ink absorbing one of the screen primaries. Black ink, K for key, replaces equal amounts of the three, because three inks on top of each other make a muddy dark brown, not a crisp black, and use far more ink.
The textbook conversion scales each channel to 0–1, sets black to 1 minus the largest of the three, and then takes each ink as the share of the remaining light that its channel blocks: C = (1 − R′ − K) ÷ (1 − K), and the same for M with green and Y with blue. Pure black gives K = 100% and no colour inks; white gives no ink at all.
Real printing doesn’t work from this formula. Each press, ink set and paper has an ICC profile describing the colours it can actually reproduce, and design software converts through it, adding grey component replacement, total ink limits and gamut mapping. Bright screen colours such as pure RGB green or blue are outside what process inks can print. Use these numbers as a starting point and ask the printer for their profile and a proof.
K = 1 − max(R′, G′, B′), C = (1 − R′ − K) ÷ (1 − K), M and Y alike
- CMYK is a subtractive model: inks absorb light, and the K plate (key, black) is added for depth and to save coloured ink in dark areas. Source: Wikipedia, CMYK color model.
- An ICC profile describes how a particular device, such as a press with a given ink and paper, reproduces colour, so software can convert between devices consistently. Source: International Color Consortium, ICC profiles.
Screen colours in naive CMYK
Primaries, secondaries and a few everyday colours converted with the formula above; a print profile would give different values.
| Colour | RGB | CMYK (%) |
|---|---|---|
| #FF0000 | rgb(255, 0, 0) | 0, 100, 100, 0 |
| #00FF00 | rgb(0, 255, 0) | 100, 0, 100, 0 |
| #0000FF | rgb(0, 0, 255) | 100, 100, 0, 0 |
| #00FFFF | rgb(0, 255, 255) | 100, 0, 0, 0 |
| #FF00FF | rgb(255, 0, 255) | 0, 100, 0, 0 |
| #FFFF00 | rgb(255, 255, 0) | 0, 0, 100, 0 |
| #000000 | rgb(0, 0, 0) | 0, 0, 0, 100 |
| #FFFFFF | rgb(255, 255, 255) | 0, 0, 0, 0 |
| #808080 | rgb(128, 128, 128) | 0, 0, 0, 50 |
| #009688 | rgb(0, 150, 136) | 100, 0, 9, 41 |
Show all 14 rowsShow fewer
| #E4572E | rgb(228, 87, 46) | 0, 62, 80, 11 |
| #2E86AB | rgb(46, 134, 171) | 73, 22, 0, 33 |
| #FFC107 | rgb(255, 193, 7) | 0, 24, 97, 0 |
| #6A1B9A | rgb(106, 27, 154) | 31, 82, 0, 40 |
Frequently Asked Questions
Why do my colours look dull when printed?
Screens emit light and can show more saturated colours than ink on paper reflects. Vivid greens, blues and oranges are outside the range of process inks and come out duller in print. A proof from the printer shows what to expect; for a must-match brand colour, ask about a spot (Pantone) ink.
Is this CMYK good enough to send to a printer?
It is fine for a quick reference or a home printer, which converts by itself anyway. For professional print, design in your layout software with the printer’s profile (for example a FOGRA or GRACoL profile) and let it convert, or send RGB files if the printer asks for them.
How do I convert hex to CMYK?
Paste the hex code in the box under the sliders. The page reads it as RGB and converts that, so #009688 becomes rgb(0, 150, 136) and then cmyk(100%, 0%, 9%, 41%).
What is rich black?
Black printed with some of the other inks under the K, such as 60% cyan, 40% magenta, 40% yellow and 100% black, which looks deeper than K alone on large areas. The simple formula never produces it: pure black always comes out as 0, 0, 0, 100.