HSV to RGB
Convert HSV / HSB colors to RGB values.
Type a HSV value or pick a color – the result updates instantly.
Preview
HSV to RGB Converter
Turn hue, saturation, and value into the red, green, and blue channels that screens, APIs, and image libraries understand. For example, hsv(120, 50%, 75%) converts to rgb(96, 191, 96), a medium leaf green. Enter values as hsv() notation or as three plain numbers.
The algorithm in four steps
HSV describes a color on a hexagonal cone; RGB describes it on a cube. The conversion maps one to the other:
- Chroma: C = V × S – the spread between the strongest and weakest channel.
- Sector: divide the hue by 60 to find which of the six 60° slices of the wheel the color is in.
- Middle channel: X = C × (1 − |(H / 60) mod 2 − 1|).
- Offset: m = V − C, added to every channel before scaling to 0–255.
| Hue range | (R, G, B) before offset |
|---|---|
| 0–60° | (C, X, 0) |
| 60–120° | (X, C, 0) |
| 120–180° | (0, C, X) |
| 180–240° | (0, X, C) |
| 240–300° | (X, 0, C) |
| 300–360° | (C, 0, X) |
Worked example
For hsv(120, 50%, 75%): C = 0.75 × 0.5 = 0.375 and m = 0.75 − 0.375 = 0.375. A hue of exactly 120° lands in the 120–180° row and gives X = 0, so the channels are (0, 0.375, 0) + 0.375 = (0.375, 0.75, 0.375). Multiplying by 255 gives 95.6, 191.25, and 95.6, which round to rgb(96, 191, 96) – or #60BF60 in HEX.
When you need RGB output
- Canvas and WebGL: drawing APIs take numeric channels, while color logic (for example, cycling hues in an animation) is simpler in HSV.
- Hardware: RGB LED strips and displays need per-channel values, even if the user picks colors on a hue wheel.
- Data visualization: generating evenly spaced hues for chart series and converting each to RGB for the renderer.
To get a HEX code directly, try HSV to HEX. For the reverse direction, use RGB to HSV.
Frequently Asked Questions
What is the HSV to RGB formula?
Compute chroma C = V × S, an intermediate X = C × (1 − |(H / 60) mod 2 − 1|), and m = V − C. Depending on which 60-degree sector the hue falls in, (R, G, B) is a permutation of (C, X, 0); add m to each and multiply by 255.
Why are the RGB results whole numbers?
Standard 8-bit RGB stores each channel as an integer from 0 to 255, so the exact result is rounded to the nearest whole number. For example, hsv(120, 50%, 75%) gives 95.6 for red and blue, which rounds to 96.
What RGB value does zero saturation give?
With 0% saturation all three channels are equal, producing a gray. The level is set by value alone: hsv(45, 0%, 50%) is rgb(128, 128, 128), no matter what the hue is.
Does this work with HSB values from Photoshop?
Yes. HSB and HSV are the same color model with different names, so you can type the H, S, and B numbers from any Adobe color picker directly.