Skip to content

RGB vs CMYK

Screens add light, ink subtracts it, and the two cannot reach the same colours. What that means for print, and which colours to stop trusting on screen.

By Wajahat Rasoul ·

Adding light, subtracting light

RGB is additive. A screen starts black and emits red, green and blue light. All three at full strength make white; none makes black.

CMYK is subtractive. Paper starts white and reflects everything. Cyan, magenta and yellow ink each absorb part of the spectrum, so adding ink removes light. In theory all three together make black; in practice they make a muddy brown, which is why a dedicated black — the K — exists.

These are not two encodings of the same thing. They are two different physical processes, and that is why the colours do not line up.

Why some colours simply cannot print

A gamut is the set of colours a process can actually produce. The RGB gamut of a decent monitor and the CMYK gamut of a printing press overlap substantially, but neither contains the other.

  • Screens reach further into vivid saturation — electric blues, neon greens, bright oranges. Ink cannot get there, and the printed version comes back duller. This is the disappointment nearly everyone has had at least once.
  • Ink reaches a few places screens do not — certain deep yellows and rich browns, and anything using a spot colour outside the process set entirely.

Which to work in, and when

DestinationColour modeNotes
Web, app, social, videoRGB (sRGB)sRGB is the safe default; wider spaces can look wrong in software that ignores profiles.
Office printerRGBThe driver converts. Sending CMYK often makes it worse.
Commercial printCMYK, to the printer's profileAsk which profile. Do not guess — profiles differ by press and paper.
Stock submissionRGB (sRGB)Agencies overwhelmingly want sRGB; a CMYK upload is a common rejection.

The general rule: work in RGB, convert to CMYK as late as possible, and only when you know the destination profile. Converting early throws away colours you might still have needed.

What happens during conversion

Conversion maps every RGB colour to the nearest printable one. Colours inside both gamuts survive almost unchanged; colours outside the CMYK gamut get pulled to its edge. Two similar bright blues can end up as the same printed blue, which is why detail sometimes flattens in saturated areas.

Two things worth knowing:

  • It is not reversible. Converting CMYK back to RGB does not restore the original vibrancy; the information is gone.
  • Soft proofing exists. Design software can simulate a CMYK profile on screen so you see the dulling before it happens. It is an approximation, but far better than being surprised by the proof.

Practical rules for delivery

  • Keep a master in RGB. Export CMYK copies per print job rather than converting the master.
  • Ask the printer for the ICC profile they want, and the total ink limit. Both change the conversion.
  • Set black text as 100% K only, not a mix of all four inks. Four-colour black text goes fuzzy the moment registration is slightly off.
  • Check your file has the pixels for the size, and that the density tag matches what was asked — the DPI question is separate from the colour one, and both get checked.
  • Deliver print files as JPG, PNG, TIFF or PDF as requested. WebP has no place in a print workflow.

What these tools do and do not do

Everything on this site works in RGB, because everything runs in a browser and browsers work in RGB. The palette extractor reports HEX, RGB and HSL — all screen colour spaces — and the WCAG contrast figures it shows are defined against screen luminance, so they describe legibility on a display rather than on paper. More on reading those numbers.

Converting to CMYK

There is no CMYK converter here, and adding one that pretends to be accurate would be worse than not having it: a correct conversion needs the destination ICC profile, and that comes from the printer, not from a web page. Do it in software that can hold the profile — and if the file simply needs a print-standard density tag, the DPI converter handles that part.

Tools for this

Everything here runs in your browser — no upload, no account.

Related guides