CMYK to RGB: Working Backwards From a Printer’s Build
The usual reason to run this conversion is a handoff in the wrong direction. A printer, a packaging supplier or an old brand guideline gives you a CMYK build, and now the same colour has to appear on a website, in an app or on a slide. The build describes ink percentages while a screen needs three channel values, and the CMYK to RGB formula bridges the two.
Each screen channel starts at full brightness and is reduced by one coloured ink and by black. Here is the arithmetic for C:0 M:92 Y:77 K:22:
- Black leaves 1 − 22/100 = 0.78 of the light available to every channel.
- Red is reduced by cyan: 255 × (1 − 0) × 0.78 = 198.9, which rounds to 199.
- Green is reduced by magenta: 255 × (1 − 0.92) × 0.78 = 15.9, which rounds to 16.
- Blue is reduced by yellow: 255 × (1 − 0.77) × 0.78 = 45.7, which rounds to 46.
- The screen value is
rgb(199, 16, 46), or#C7102E.
Notice that red lands on 199, not 200. This build is exactly what the formula produces for #C8102E, and yet it does not convert back to that colour. Whole-number ink percentages have only 101 steps where a screen channel has 256, so a round trip through CMYK can shift a value by a level or two — which is why, if the original hex code still exists somewhere, it beats the build as a source. The RGB to CMYK converter shows the forward direction and its own limits.
Why the Screen Version Looks Brighter
Hold the printed piece next to the converted colour on a monitor and the screen nearly always wins on brightness and punch. That is not a fault in the conversion. The formula makes three optimistic assumptions about print:
- Paper is perfect white. Zero ink converts to
rgb(255, 255, 255), the brightest white the display can produce. Real paper is duller and often warmer or bluer, and uncoated stock is duller still. - Black ink is perfect black. K:100 converts to
rgb(0, 0, 0), yet solid black ink reflects a little light and reads as a very dark grey, so the printed range from lightest to darkest is shorter than on screen. - Inks behave ideally. The arithmetic assumes each ink removes exactly its share of light. Real inks are impure, dots spread as they print, and a 50% tint usually prints darker than 50%.
A backlit display also contributes its own brightness, while a printed sheet can only return some of the light already in the room. Put together, a converted colour looks cleaner, lighter and more saturated than the sheet it came from, and the gap is widest in mid-tones and in dark, heavily inked colours.
One Screen Colour, Many CMYK Builds
A CMYK to RGB conversion also throws information away. Builds that a printer would treat very differently can collapse onto one screen value, because the formula only measures the light left over, not how the inks produced it.
| Build | CMYK | Total ink | Formula RGB | HEX |
|---|---|---|---|---|
| Single-ink black | C:0 M:0 Y:0 K:100 | 100% | rgb(0, 0, 0) | #000000 |
| Four-ink rich black | C:60 M:40 Y:40 K:100 | 240% | rgb(0, 0, 0) | #000000 |
| Registration colour | C:100 M:100 Y:100 K:100 | 400% | rgb(0, 0, 0) | #000000 |
| Solid process cyan | C:100 M:0 Y:0 K:0 | 100% | rgb(0, 255, 255) | #00FFFF |
| Solid process magenta | C:0 M:100 Y:0 K:0 | 100% | rgb(255, 0, 255) | #FF00FF |
| Solid process yellow | C:0 M:0 Y:100 K:0 | 100% | rgb(255, 255, 0) | #FFFF00 |
| Half-strength black tint | C:0 M:0 Y:0 K:50 | 50% | rgb(128, 128, 128) | #808080 |
| This page’s default build | C:0 M:92 Y:77 K:22 | 191% | rgb(199, 16, 46) | #C7102E |
3 of these builds land on #000000, even though their ink totals run from 100% to 400%. The process inks mislead in a different way: solid process cyan converts to #00FFFF, a brilliant screen cyan far more saturated than any cyan ink on paper.
So when a converted value becomes a reference, record the build it came from next to it. A web colour labelled as derived from a named build, with no profile applied, is honest about its origin; a bare code invites someone to convert it back and assume the numbers will match. Keeping the pair together also stops a colour from quietly changing each time a document passes between the print and web teams.
Soft-Proofing: Seeing Print on Screen Properly
If the goal is to preview the printed piece on screen, rather than to choose a web colour, the CMYK to RGB formula is the wrong tool. Soft-proofing combines the printer's output profile with a profile of your monitor to simulate the press, including its duller paper and weaker black.
In Photoshop and Illustrator, View › Proof Setup chooses the output profile and View › Proof Colors turns the simulation on. Photoshop's custom proof setup also offers Simulate Paper Color and Simulate Black Ink, which apply exactly the paper and ink effects described above.
Choose the proofing profile the way you would choose a conversion profile: ask the printer. A proof made with a coated profile for a job that will run on uncoated stock looks cleaner and more saturated than the finished piece, which defeats the purpose. If the printer supplies a custom profile for their press, install it and pick it in Proof Setup like any other.
A soft proof is only as trustworthy as the display showing it. Calibrate the monitor with a hardware device, work in dim and neutral light, and compare against a printed proof under a D50 viewing light when colour really matters. Even then, a hard proof on the actual stock has the final word.
Deriving Brand Web Colours: Start From Pantone, Not CMYK
For brand work, a CMYK build is rarely the right parent for a web colour. The build was already a compromise, chosen to approximate a colour on a particular press, so converting it to RGB stacks a second approximation on top of the first, and the result can drift visibly from the brand's spot colour.
When the colour has a Pantone reference, derive both the print value and the screen value from that reference, as siblings rather than as parent and child. Use CMYK to Pantone to identify the spot ink a build was approximating, then take its screen value from Pantone to HEX or Pantone to RGB, both of which read from our Pantone library rather than from arithmetic on a build.
When there is no Pantone reference, pick one master value and stick to it. If the colour was designed on screen first, the original RGB or hex value is the master and the CMYK build is its print approximation. If it genuinely began as ink on paper, measure a printed sample with a spectrophotometer instead: the device-independent Lab reading converts to screen colour far more reliably than a CMYK recipe, and the LAB to Pantone converter can match it to the nearest ink as well.
Our guide to keeping brand colours consistent across print and screen covers how to record these relationships in a guideline, and CMYK vs RGB explains why the two models never line up exactly.
Checks Before a Converted Colour Goes Live
A converted value is a proposal until it has been looked at in the places it will be used. If you need it as a hex code for CSS or a slide template, the CMYK to HEX converter takes the same build. Before publishing either, run through these:
- Check text contrast. A colour that works as a large printed headline can be too light for body text on screen; the WCAG contrast minimum asks for at least 4.5:1 against the background for normal-sized text.
- Look at it on more than one device. Phones, laptops and office monitors differ in brightness and gamut, so test on the screens your audience actually uses.
- Compare with the printed original in daylight. Expect the screen to look brighter; what you are confirming is that the hue reads as the same colour, not that the two match exactly.
- Record the source. Note the build, the date and the method next to the web value, so the next person knows it was converted rather than specified.