ForHosting KIT · Images

RGB to CMYK converter

Get print percentages from screen colors: red 255, green 0, blue 0 becomes cyan 0 %, magenta 100 %, yellow 100 % and key 0 %. Use it for brand swatches, dieline notes and design handoff. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Red
255
Green
0
Blue
0
You get
Cyan
0
Magenta
100
Yellow
100
Key
0

Need RGB values turned into CMYK for print specs, packaging proofs or design handoff? Enter red, green and blue as integers from zero to two hundred fifty-five and receive cyan, magenta, yellow and key (black) as whole-number percentages plus a compact cmyk() string you can paste into a style sheet or production ticket.

What RGB and CMYK mean for screen versus print

RGB is an additive model built for screens: red, green and blue light mix toward white, and each channel is usually stored as an integer from zero to two hundred fifty-five. Pure red is two hundred fifty-five, zero, zero; black is zero on every channel; white is full intensity on all three. CMYK is a subtractive model built for ink on paper.

Cyan, magenta and yellow inks absorb light; key (black) deepens shadows and text without dumping three colored inks on top of each other. Designers and print buyers often receive brand colors as hex or RGB from a website or product photo, then need CMYK percentages for a press-ready file, a dieline note or a packaging vendor form. This converter focuses on that single direction: three integer channels in, four print percentages out.

It does not try to replace a full ICC profile workflow for soft-proofing photography, but it gives a stable, textbook RGB-to-CMYK baseline you can automate in scripts, QA checks and quick manual lookups when you only need the classic formula.

How the conversion formula works

The engine normalizes each channel by dividing by two hundred fifty-five so red, green and blue sit on a zero-to-one scale. Key is one minus the maximum of those three normalized channels. When the color is pure black, key becomes one hundred percent and cyan, magenta and yellow stay at zero, which matches the usual press expectation that solid black does not need colored underprint.

For every other color, each process ink is computed as one minus the normalized channel minus key, then divided by one minus key, and finally scaled to a whole percentage with standard rounding.

Print-ready brand swatches

Turn digital RGB brand colors into CMYK percentages for packaging, stationery and vendor specification sheets.

Design QA and handoff

Validate that mockups using screen RGB map to expected process-ink values before files leave for the press.

Automation and style pipelines

Batch-convert catalog colors in scripts or CMS jobs and store cyan, magenta, yellow and key next to the original RGB.

What inputs does the RGB to CMYK converter accept?

Three integer channels named red, green and blue, each from 0 to 255 inclusive.

What does the response contain?

The validated red, green and blue values, cyan, magenta, yellow and key as whole percentages, and a cmyk(...) string for easy copy-paste.

How is the black (key) value worked out?

Each channel is divided by 255, and key is one minus the largest of the three. Pure red therefore has key 0 %, because its red channel is already at full strength.

Why does pure black use only black ink?

When red, green and blue are all zero, key becomes 100 % and cyan, magenta and yellow stay at 0 %. That matches the usual press practice of printing solid black without a colored underprint.

Does this replace an ICC color profile?

No. It applies the classic formula, which gives a stable baseline for specs, quick checks and batch conversions. For soft-proofing photographs on a specific press, a full color-profile workflow is still the right tool.

What if a channel is above 255?

The color is rejected with a clear message instead of being adjusted, so a wrong swatch never reaches the press. Red, green and blue must each be a whole number from 0 to 255.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/color/rgb-cmyk

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/color/rgb-cmyk \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"red":255,"green":0,"blue":0}'
{
  "red": 255,
  "green": 0,
  "blue": 0
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.rgb_cmyk",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Out-of-range channels fail fast with a clear invalid_input message so bad swatches never reach the press. Run the converter free in your browser or call the same deterministic logic through the API at $0.002 per successful request.

What RGB and CMYK mean for screen versus print

Because the output is percentages and a cmyk() string, you can drop results into CSS print styles, PDF annotations or a simple JSON pipeline without re-deriving the math.

How the conversion formula works

The response echoes the validated red, green and blue integers, the four CMYK percentages as numbers named cyan, magenta, yellow and key, and a single cmyk string such as cmyk(0%, 100%, 100%, 0%) for pure red. There is no network call, no random seed and no clock dependency, so the same RGB triple always yields the same JSON. Channels must be integers inside zero through two hundred fifty-five; a missing field, a float, or a value such as two hundred fifty-six or minus one raises invalid_input and is not billed as a successful conversion.

Using the API, pricing and delivery

Call the capability with three required fields: red, green and blue. Each must be a finite integer between zero and two hundred fifty-five inclusive. Status is beta while the surface stabilizes, but the arithmetic follows the fixed textbook RGB-to-CMYK relations and will not change for the same inputs. Pair this tool with your design system docs so print and digital teams share one conversion path instead of divergent spreadsheet formulas. On success the JSON includes the normalized input channels, cyan, magenta, yellow, key and the cmyk display string. Pricing for the hosted API is a flat $0.002 per successful request; validation failures such as a channel outside range do not consume balance. For pipelines, submit each conversion as its own task and collect results through your usual webhook or signed-link flow. Keep channel names explicit rather than stuffing a free-text color string: the contract stays aligned with OpenAPI, SDK types and form controls, and it avoids ambiguous parsing of hex versus rgb() notation.

How much does the RGB to CMYK API cost?

Each successful API call costs $0.002. The same converter runs free in your browser with no account required.

What happens if a channel is outside 0–255?

The request fails with invalid_input naming the bad channel. Invalid client input is not charged.

Is the conversion deterministic?

Yes. It uses the standard subtractive formula with fixed rounding, so the same RGB triple always produces the same JSON result.

Read the full KIT documentation →