CMYK Converter

Convert a list of colours between RGB and CMYK, and see exactly what the arithmetic gives you.

Runs on your deviceDesign & ColorWorkingNo account needed

What this tool does

CMYK Converter takes one colour per line and works in whichever direction each line needs. A line beginning with cmyk( — or one that is just four bare numbers, such as 0 100 100 0 — is turned into red, green and blue; anything else is read as a colour and reported as cyan, magenta, yellow and key. The result is a grid of swatch cards rather than a table: each card paints the colour with its hex code across it, then names the line you typed and the CMYK underneath. Copy output puts the converted values on the clipboard, one line per colour — the cmyk() string for a line converted that way, and the rgb() value followed by the hex for a line converted back.

The input side is wider than hex. Alongside 3, 4, 6 and 8 digit hex codes with the hash optional, it reads the CSS colour names, transparent, and rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch() and color(srgb …). Each line has to be the bare value, though, so a declaration such as color: #3B82F6; is refused, and a trailing comma or comment breaks the line it sits on. Blank lines are dropped, and so are lines starting with // or a hash followed by a space, which lets a palette carry headings. One quirk of the detection is worth knowing: four bare numbers mean CMYK, and a three-number line is not recognised at all, so a plain RGB triplet has to be written as rgb(59, 130, 246). The Direction setting reads every line the same way instead of guessing, and CMYK output can be rounded to nought, one or two decimal places.

This is the standard arithmetic conversion, with no ICC profile and no ink model behind it. Key is taken as the amount of black the three channels share, so every neutral separates to K alone, nothing ever comes back as a rich black, and total ink coverage is neither calculated nor held under a press limit. These are not the values a RIP will produce for US Web Coated (SWOP) or FOGRA39, so treat them as a reference figure and let the print shop's own profile decide the plates. The conversion is lossy in one direction too: several mixtures land on the same screen colour, so cmyk(100%, 100%, 100%, 0%) and cmyk(0%, 0%, 0%, 100%) both give black and a round trip returns the K-only version. The figure on a card is always worked back from the converted colour rather than echoed, so a line typed as 50 50 50 50 is labelled cmyk(0%, 0%, 0%, 75%). Everything is treated as sRGB with no colour management, a lab() or oklch() value beyond that gamut is clamped channel by channel, and alpha is ignored in the CMYK figure because CMYK has no alpha channel. The work happens in this browser tab — the list is not uploaded, and the page keeps converting with the network off.

How to use it

  1. Paste your colours, one per line. Hex with or without the hash, rgb(), hsl(), oklch(), a CSS colour name, or four CMYK numbers with or without percent signs. Load sample shows a mixed list.
  2. Leave the direction on detect, or fix it. Detect per line copes with a mixed list. Force RGB / hex → CMYK or CMYK → RGB when every line is the same kind — a line that will not read that way stops the run instead.
  3. Choose how precise the CMYK should be. Whole percentages by default, or one or two decimal places when the spec you are filling in is written that finely.
  4. Read the cards, or take the column. Every card carries the colour, its hex, the line you typed and the CMYK. Copy output gives the converted values on their own, one colour per line.

Processing & privacy

Runs on your device. Your file is processed directly in this browser.

Common use cases

Filling in a brand sheet that lists both

Guidelines usually print the four colour breakdown next to the hex. Converting the whole list in one pass keeps the two columns consistent with each other.

Reading a print spec back onto screen

A supplier supplies a logo as cyan, magenta, yellow and key. Converting gives a hex to drop into a mock-up while the real artwork is still being prepared.

Checking a separation before artwork goes out

Seeing that a grey lands on K alone, or that a navy carries no yellow, catches a mistyped value before the print shop opens the file.

Quoting a rough breakdown to a printer

An approximate four colour figure is enough for a conversation or an estimate, ahead of a properly profiled conversion in the layout application.

Questions

Are my colours uploaded anywhere?
No. The parsing and the arithmetic run in this browser tab, so the list stays on your machine and the tool still converts with the network disconnected.
Will these numbers match what my printer produces?
Not exactly. This is the arithmetic conversion, with no ICC profile and no ink model, so a press working to US Web Coated (SWOP) or FOGRA39 will separate the same colour differently. Use the output as a reference and let the print shop convert through its own profile for the plates.
Why is my grey entirely black ink?
Key is set to the amount the three channels have in common, so anything neutral moves wholly into K and leaves cyan, magenta and yellow at zero. Real separations spread that differently depending on the ink model and the paper.
Why doesn't converting back give me my original CMYK?
More than one mixture maps to the same screen colour. cmyk(100%, 100%, 100%, 0%) and cmyk(0%, 0%, 0%, 100%) are both black in RGB, so a round trip returns the K-only form rather than the one you typed.
Do CMYK values run from 0 to 100 or from 0 to 1?
0 to 100, with or without percent signs. A line of 0.76 0.47 0 0.04 is read as fractions of one per cent and comes back nearly white, so write it as 76 47 0 4. Anything above 100 is refused, with the value it found named in the error.
What happens if one line is wrong?
The whole run stops and nothing is converted. The message names the line number and quotes what it could not read, so fix that line and run again — there are no partial results and no rows marked as skipped.
Can I paste plain RGB numbers?
Only in function form. Four bare numbers are treated as CMYK, and a three-number line is not recognised, so write rgb(59, 130, 246) rather than 59, 130, 246.
Does it know Pantone or other spot colours?
No. There is no spot colour library here, so a Pantone reference has to be looked up in the swatch book and entered as a hex value or as its four colour build.
What happens to a translucent colour?
The alpha is ignored when the CMYK is worked out, because CMYK has no alpha channel. An 8 digit hex keeps its alpha in the hex written on the swatch, while the CMYK below describes the opaque colour.

Related tools