Skip to content
AgileLogics

CMYK to RGB

Converts Cyan/Magenta/Yellow/Key(black) percentages into their RGB equivalent.

How it works

Enter C, M, Y, K percentages (e.g. 0, 100, 100, 0) and click Convert.

What RGB values does a CMYK color give on screen?

Each RGB channel is 255 times the light left over after one ink and the black ink have absorbed their share. Cyan controls red, magenta controls green, yellow controls blue, and black dims all three. A deep red specified as 15, 100, 90, 10 comes out as rgb(195, 0, 23). It's an idealized screen preview of the print color, not a measured match.

Per-channel math

Writing each ink as a fraction (82% is 0.82), the converter computes:

Channel Formula Driven by
Red 255 × (1 − C) × (1 − K) Cyan absorbs red light
Green 255 × (1 − M) × (1 − K) Magenta absorbs green
Blue 255 × (1 − Y) × (1 − K) Yellow absorbs blue

Results are rounded to whole numbers and clamped to 0–255, then printed as rgb(R, G, B). This is the same calculation the W3C gives as the "naive" uncalibrated conversion in the CSS Color Module Level 5 draft, written there as 1 − min(1, C × (1 − K) + K), which simplifies to the formulas above.

For 15, 100, 90, 10: red = 255 × 0.85 × 0.90 = 195.1, green = 255 × 0 × 0.90 = 0, blue = 255 × 0.10 × 0.90 = 23.0. Rounded, rgb(195, 0, 23).

Where this preview helps

RGB is what screens, browsers, canvas APIs and most image libraries speak. Typical reasons to convert a print color:

  1. Mocking up the web or social version of a printed flyer, so the colors are at least in the right family.
  2. Building a quick swatch sheet from a list of CMYK specs to spot obvious typos (a "red" that comes out green has a swapped value).
  3. Feeding colors into code that only takes RGB, such as a chart library or an image script.
  4. Giving a developer something concrete when the only reference is a print PDF.

For the first two, convert each spec here, paste the rgb() into a test page or the color picker to eyeball it, and keep a note of which values were computed rather than official.

Why the preview isn't the print

The formula treats each ink as a perfect filter that blocks exactly one primary of light and nothing else, and paper as perfectly white. Real inks are impure and overlap, paper has a tint and texture, and every press and stock combination behaves differently. The CSS Color 5 draft says the naive approximation "is likely to be visually very far from the actual printed result." Pure cyan shows the gap well: 100, 0, 0, 0 becomes rgb(0, 255, 255), much brighter than cyan ink.

Color-managed tools avoid this by converting through an ICC profile, a description of a specific output condition maintained under the International Color Consortium format. Printers often work to a standard condition such as the one in the FOGRA39 data set for coated offset paper. If you need a preview you can sign off on, use a profile-aware app with your printer's profile, or ask for a hard proof.

Reference values

CMYK RGB
100, 0, 0, 0 (cyan) rgb(0, 255, 255)
0, 0, 100, 0 (yellow) rgb(255, 255, 0)
0, 60, 100, 0 (orange) rgb(255, 102, 0)
82, 44, 0, 0 (blue) rgb(46, 143, 255)
0, 0, 0, 50 (50% black) rgb(128, 128, 128)
75, 68, 67, 90 (rich black) rgb(6, 8, 8)
0, 0, 0, 100 (black) rgb(0, 0, 0)

Common input problems

The parser takes the first four numbers it finds, so cmyk(82, 44, 0, 0), 82 44 0 0, 82-44-0-0, percent signs and labels like C 82 M 44 Y 0 K 0 all work.

What you typed Result Fix
0.82, 0.44, 0, 0 Error: "These look like 0-1 fractions…" Use percentages: 82, 44, 0, 0
82, 44, 0 Error Include K, even when it's 0
82, 44, 0, 120 Error Every value must be 0 to 100
-5, 0, 0, 0 Error A minus sign at the start of a number makes it negative

For range and count problems the error text is "Enter valid CMYK percentages (0-100), e.g. cmyk(82, 44, 0, 0) or 82, 44, 0, 0." The fraction hint appears only when there are no % signs, all four values are between 0 and 1, and at least one is written with a decimal point. If you really mean values under 1%, add the percent signs: 0.82%, 0.44%, 0%, 0% gives rgb(253, 254, 255).

Next steps

To go back from screen to ink, use RGB to CMYK. If you'd like the result as a HEX code, RGB to HEX takes the rgb() output directly. To adjust brightness or saturation of a print color before converting, CMYK to HSV gives you values that match the sliders in most design apps.

Last updated

Frequently asked questions

What is the formula for CMYK to RGB?
R = 255 × (1 − C) × (1 − K), G = 255 × (1 − M) × (1 − K) and B = 255 × (1 − Y) × (1 − K), with C, M, Y and K written as fractions of 1. The tool rounds each result to a whole number.
Why is the on-screen preview more vivid than my print?
The formula assumes perfect inks and pure white paper, which no press has. Screens can also show saturated colors that process inks can't reach. For a faithful soft proof, use design software set up with your printer's ICC profile.
My result is almost white. What went wrong?
Check whether the values were tiny percentages, such as 2, 1, 0, 0. Those really are almost no ink. If you paste 0-1 fractions like 0.82, 0.44, 0, 0, the tool shows a hint instead of a result, because it reads every value as a percentage; enter 82, 44, 0, 0.
Can I get the result as a HEX code?
This tool outputs rgb() only. Use the CMYK to HEX converter for a 6-digit code, or convert the rgb() value with RGB to HEX.
Does it upload anything?
No. The calculation is plain JavaScript in your browser.