CMYK to HSV (HSB) for color pickers
Many pickers accept HSB numbers but not ink percentages. This CMYK to HSV converter lets you take a color from a print spec and set it precisely in any tool that offers hue, saturation and brightness fields.
The two models line up in a neat way: value is tied to black ink, and saturation is tied to the spread between the color inks.
Shortcut formulas
Because every RGB channel is 255 × (1 − ink) × (1 − K), the brightest channel belongs to the smallest color ink and the darkest channel to the largest one. That gives:
V = (1 − min(C, M, Y)) × (1 − K)
S = (max(C, M, Y) − min(C, M, Y)) / (1 − min(C, M, Y))
when one ink is 0%: V = 1 − K and S = max(C, M, Y)
Hue still needs the full RGB calculation, which the tool performs for you.
Worked example: cmyk(61%, 28%, 0%, 29%)
Yellow is 0%, so V = 1 − 0.29 = 71% and S = 61%. The tool returns hsv(208, 60.8%, 71%). Saturation shows 60.8% because the RGB channels are rounded to whole numbers (71 and 181) before HSV is computed.
When no ink is at zero
If all three color inks are above zero, the shortcut changes. The common gray part of the inks acts like extra black:
cmyk(20%, 60%, 100%, 20%)
V = (1 − 0.20) × (1 − 0.20) = 0.64 → 63.9% in the tool
S = (1.00 − 0.20) / (1 − 0.20) = 1.00 → 100%
→ hsv(30, 100%, 63.9%)
cmyk(0%, 50%, 100%, 36%) → hsv(30, 100%, 63.9%)
Both recipes land on the same HSV color. Printers call this trade-off gray component replacement: removing the shared gray from C, M and Y and printing it with black instead. HSV, like any screen model, cannot tell the two apart.
Things to watch
- Value 63.9% rather than 64%: 255 × 0.64 = 163.2, which rounds to channel 163, and 163 / 255 = 63.9%.
- Pure black ink (K 100%) gives
hsv(0, 0%, 0%)regardless of the other inks. - The formula is not ICC color-managed, so the HSV color approximates the print rather than measuring it.
For the opposite conversion use HSV to CMYK. To get a shareable code, CMYK to HEX is quicker, and HEX to HSV helps if you later receive the color as hex.