LCH to RGB Converter

Converted RGB Output --
100%

Wide-Gamut & Linear Formats

Modern CSS color space notations derived from this color

Contrast Analysis (WCAG 2.1)

Checks the converted color against foreground or background targets for accessibility compliance.

How to Convert LCH to RGB

Converting LCH to RGB bridges the gap between how humans perceive color and how digital screens emit light. LCH describes color using Lightness, Chroma, and Hue, while RGB dictates the exact intensity of red, green, and blue pixels.

Why Convert LCH to RGB?

LCH is an excellent format for designing accessible, high-contrast color palettes because its Lightness channel is absolute. However, many older graphics libraries, canvas APIs, and legacy systems only accept RGB values. Converting your LCH colors ensures they render correctly across your entire technology stack.

The Mathematics of the Conversion

The conversion requires a multi-step pipeline. First, the LCH cylindrical coordinates are converted into CIELAB Cartesian coordinates (a and b) using sine and cosine functions.

Next, the Lab values are converted to the CIE XYZ reference space, and then multiplied by a transformation matrix to yield linear RGB values. Finally, the sRGB gamma correction curve is applied, and the values are scaled to the standard 0-255 range.

Converting LCH to Lab in JavaScript

The first step of the pipeline (LCH to Lab) is straightforward trigonometry:

function lchToLab(l, c, h) {

  // Convert Hue from degrees to radians

  let hr = h * (Math.PI / 180);

  

  // Calculate a and b coordinates

  let a = c * Math.cos(hr);

  let b = c * Math.sin(hr);



  return { l, a, b };

}

From there, the Lab values must be passed through the XYZ and RGB matrices to complete the conversion.

Related Tools