Free CMYK to RGB converter
CMYK to RGB, and the builds that share a pixel
Somebody sent you four ink percentages and the web build needs a color: set the sliders, take the hex. It is free, needs no account, and the value is worked out in the tab. What the page adds is the part every other converter drops — the list of other ink builds that land on this identical pixel, because the equation has one degree of freedom left over and a screen color is never one separation.
- 100% free
- No signup
- Equivalent builds listed
- Reads pasted specs
- hex, rgb() and hsl()
Press Ctrl+V anywhere on the page to drop in a cmyk() string or a 78/12/42/3 spec — no need to click the field first.
Ink coverage 135% across four plates
- HEX
#36da8f - RGB
rgb(54, 218, 143) - HSL
hsl(153, 69%, 53%)
At K 3%, one percentage point on a chromatic plate moves red by 2.47 of the 256 available levels, and one point on the black plate moves it by 0.56. Above one level per point, every percentage lands on its own byte here.
Builds that produce this same pixel
Every row below resolves to #36da8f exactly. They differ only in how much of the neutral is carried by the black plate — and by 13 percentage points of total ink between the lightest and heaviest of them.
| Renders as | Black generation | Build | Coverage |
|---|---|---|---|
| K 0% | 79 / 15 / 44 / 0 | 137% | |
| K 3% — your build | 78 / 12 / 42 / 3 | 135% | |
| K 6% | 77 / 9 / 40 / 6 | 133% | |
| K 9% | 77 / 6 / 38 / 9 | 130% | |
| K 12% | 76 / 3 / 36 / 12 | 127% | |
| K 15% | 75 / 0 / 34 / 15 | 124% |
How to convert CMYK to RGB
Three steps from an ink spec to a value your stylesheet accepts.
Enter the four ink percentages
Drag the cyan, magenta, yellow and key sliders, or type into the number boxes beside them when the spec is already written down. Pasting works too and the parser is forgiving about how the brief was formatted: cmyk(78%, 12%, 42%, 3%), 78/12/42/3 and C78 M12 Y42 K3 all land in the right plates, in that order.
Take the screen value in the notation you need
The panel on the right shows the same color as hex, rgb() and hsl(), each with its own copy button, over a swatch large enough to judge rather than squint at. Hex goes into a design tool, rgb() into a canvas context or a shader, and hsl() is the one to take if the next thing you will do is build a lighter or darker variant of it.
Read the table before you send the build back
Underneath sits every ink build that resolves to that exact pixel, from a K-free version where cyan, magenta and yellow carry the whole neutral, down to the maximum-black version this arithmetic returns. Compare the coverage column: the same color on screen can cost tens of percentage points more ink on the sheet depending on which row the separation chose.
Technical specifications
| Conversion | R = 255 · (1 − C) · (1 − K), and the same for green from M and blue from Y. Device-independent, so no profile, paper or ink limit is consulted |
|---|---|
| Input formats | cmyk(78%, 12%, 42%, 3%), 78/12/42/3, C78 M12 Y42 K3, or four bare numbers; anything that is not exactly four values inside 0-100 is refused rather than guessed at |
| Plate range | 0-100% per plate in 1% steps, giving a theoretical 400% maximum coverage |
| Output notations | Three: hex, rgb() in the legacy comma form, and hsl() rounded to whole degrees and percentages, each with its own copy button |
| Resolution of the mapping | One percentage point of ink moves an 8-bit channel by at most 2.55 levels, and by less as the black plate rises — the point at which distinct specs start sharing a pixel |
| Equivalent-build table | Six black-generation steps from K = 0 to the maximum this arithmetic allows, each row showing its own coverage total |
| Output color space | sRGB, matching what an untagged hex code means to a browser. No Display P3 or Adobe RGB variant is offered, because the input carries no profile to convert from |
| Cost and processing | Free, no signup, unlimited conversions, computed in your browser |
Frequently asked questions
Why do two different CMYK builds give me the same hex code?
Because the equation has a spare degree of freedom, and the table on this page is that degree of freedom drawn out. A pixel is fixed by three numbers and a build has four, so any neutral component can be shifted between the black plate and equal parts of the chromatic plates without moving the color — that trade is called black generation, or GCR when a profile automates it. A second, smaller cause is arithmetic: one percentage point of ink moves a channel by at most 2.55 of the 256 available levels, so at high key values several adjacent percentages round into the same byte.
Which RGB space is the answer in?
sRGB, the space every browser assumes for an untagged color and the one a hex code means by default. If your workflow is in Adobe RGB or Display P3 the same numbers name a slightly different color — wider spaces stretch the primaries outward, which shows up most in saturated greens and reds. Convert with a profile before you trust the value in a print-adjacent pipeline, and use the hex here for the web build, where sRGB is what the CSS spec says a bare hex code is.
Can I recover the original CMYK numbers from an RGB or hex value?
Not uniquely, and the table shows why: a hex code has many valid pre-images and nothing in the pixel records which one the separation used. Going the other way is a choice, not a calculation, which is what the maximum-black answer on the RGB to CMYK page commits to. If you need the exact build a printer used, ask them for it — that information lives in the file and the profile, not in the color.
My printer sent a CMYK value with no profile name. Is that enough to work from?
It is enough to see roughly what they mean and not enough to match. 100/0/0/0 under FOGRA51 on coated stock and the same four numbers under SWOP on web offset are visibly different cyans, because the numbers are instructions to a press rather than a description of a color. Ask which profile and which stock; two words in a reply save an argument at the proofing stage.
Why does the screen color look brighter than the printed sample in my hand?
Because a monitor emits light and paper only reflects the light already in the room. A display running at 250-350 cd/m² in a dim office has both a higher peak and a far larger contrast range than a sheet lit at office levels, so the same nominal color reads as more luminous and more saturated on screen. This is also why a printed proof has to be judged under a D50 viewing booth rather than next to the monitor it was designed on.
Can I convert a whole image or PDF here?
No — this tool converts one color at a time and takes no files. An image conversion has to run through an ICC profile with a rendering intent chosen per image, which is a job for a raster editor or a RIP rather than a form field. Where a single value is what you actually need — a brand color, a spot from a brief, a swatch out of a printed spec — one color at a time is the faster route anyway.
Does anything I type get sent to a server?
No. The whole page is static, the four percentages never leave the tab, and the build table is recomputed in JavaScript on every slider move rather than fetched.
About reading a print spec on screen
This direction of the conversion has a reputation for being the easy one, and arithmetically it is: subtractive percentages multiply out to three channels in two lines of algebra, with nothing clipped and nothing lost. The catch is that the input was never just arithmetic. Four percentages are an instruction to a specific press about how much of each ink to lay down, and what that produces depends on the stock, the ink set and the profile the separation was made under. Turning them into a pixel gives you a faithful reading of the instruction, not a photograph of the result.
Where that gap shows up most clearly is the table under the tool. Because the mapping is many-to-one, a designer sending you “our blue in CMYK” has already made a decision you cannot see: how much of the neutral went into the black plate. Heavy grey component replacement saves ink and dries faster; light GCR keeps more of the color in the chromatic plates and holds saturation better in a rich area. Both land on the same hex. If you want the decision made deliberately rather than inherited, the RGB to CMYK converter makes the maximum-black choice explicit and shows you what it costs in coverage, and the Pantone reference covers the case where the brand color was specified as an ink in the first place.
Once the value is on screen it stops being a print problem and becomes a normal color. If you need to take it apart, the hex to RGB converter splits the code back into bytes; if the next step is a hover state or a tinted background, move it into the cylindrical model with RGB to HSL and come back through HSL to RGB, where one number changes lightness instead of three. Do the variants on the screen side: nudging ink percentages to get a lighter tint moves hue as well, since the three plates do not scale together.
Where these percentages go
Every number on this page is worked out by JavaScript running in the tab you are reading it in. Nothing you type, paste or open is uploaded, logged or kept, which is also why the tools carry on working after you disconnect from the network.