Convertidor de RGB a LCH
Describa un color RGB tal como se ajusta a mano: luminosidad de 0 para el negro a cerca de 100 para el blanco, croma como viveza y tono como un ángulo de 0 hasta 360°. Cambie uno sin alterar los demás. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Resistencia (Ω)
- 255
- G
- 128
- B
- 0
- L
- 67,0548169961
- C
- 85,5142055704
- H
- 59,9466748349
- L*
- 67,0548169961
Este convertidor de RGB a LCH toma tres intensidades de canal sRGB —rojo, verde y azul— cada una como un entero de cero a doscientos cincuenta y cinco, y devuelve coordenadas CIE LCH (luminosidad L*, croma C* y ángulo de tono h° en grados) calculadas con el punto blanco estándar D65 usado en flujos web e impresión. Diseñadores, ingenieros de accesibilidad y estudiantes usan LCH cuando una paleta vive en canales de ocho bits, pero la tarea necesita un espacio perceptualmente estructurado donde la luminosidad, el croma y el tono se editen de forma independiente, sin los ejes rectangulares a* y b* de Lab. El motor es totalmente determinista: descompande inversamente cada canal, multiplica por la matriz sRGB a XYZ de D65, normaliza por el blanco de referencia D65, forma CIE Lab y luego obtiene C* como la hipotenusa de a* y b* y h° a partir de atan2 de b* y a* —nunca llama a la red, muestrea aleatoriedad ni depende del reloj.
Qué significa la conversión de RGB a LCH y qué contiene la respuesta
En el modelo sRGB de ocho bits que usan CSS y la mayoría de los gráficos web, cada uno de rojo, verde y azul es un canal entero de cero a doscientos cincuenta y cinco.
CIE LCH es la forma polar de CIE L*a*b*: el mismo estímulo se expresa como luminosidad L* (aproximadamente cero para el negro hasta cerca de cien para el blanco difuso), croma C* que mide la distancia al eje neutro, y tono h° como un ángulo alrededor de ese eje en grados desde cero hasta, sin incluir, trescientos sesenta.
La conversión primero escala cada canal dividiendo entre doscientos cincuenta y cinco, luego deshace la gamma sRGB (la curva de descompandeo inverso IEC seis-uno-nueve-seis-seis) para que los valores se conviertan en luz lineal.
Esos canales lineales pasan por una matriz fija de tres por tres hacia CIE XYZ bajo el iluminante D65; cada componente triestímulo se divide entre el blanco de referencia D65, y luego se aplica la función pivote f de la CIE —raíz cúbica por encima de un umbral pequeño, rama lineal por debajo— para formar L*, a* y b*.
Desde Lab el paso cilíndrico es de forma cerrada: C* es la longitud euclidiana del vector a*b*, y h° es el arctangente de dos argumentos de b* y a* convertido a grados y envuelto en el intervalo semiabierto de cero a trescientos sesenta. Cuando el croma es efectivamente cero el tono es geométricamente indefinido, de modo que esta calculadora define h° como cero para colores acromáticos como el negro puro, el blanco puro y los grises neutros.
No hay una ruta que acepte porcentajes o canales en coma flotante como entrada, ni un límite silencioso de doscientos cincuenta y seis a doscientos cincuenta y cinco.
Dónde encaja la conversión de RGB a LCH en el diseño, el estudio y el software
Los diseñadores encuentran este mapeo cuando una guía de marca lista muestras RGB y un flujo de producción o de edición perceptual espera objetivos LCH, cuando la luminosidad debe permanecer fija mientras el tono gira para tintes y sombras, o cuando un sistema de diseño documenta lado a lado valores de referencia RGB de pantalla y LCH para generar rampas.
Los ingenieros de accesibilidad usan L* y C* al razonar sobre la luminosidad percibida por separado de la fuerza cromática, al comprobar que dos estados de interfaz sigan distinguiéndose tras cambios de tono, o al preparar notas que luego alimentarán comprobaciones formales de delta-E en Lab antes de reexpresar el mismo color como LCH para la autoría.
Los estudiantes lo ven en cursos de gráficos por computadora y ciencia del color que introducen XYZ, Lab y luego la forma cilíndrica LCH, en clases de fotografía digital que se mueven entre deslizadores de canal y controles de tono y croma, y en calentamientos de entrevista que piden una conversión mental de un triplete corto a coordenadas Lab polares.
Combínelo con herramientas de color multiformato cuando necesite hexadecimal o CMYK, con el convertidor Lab cuando solo necesite a* y b* rectangulares, y con otros convertidores gratuitos deterministas cuando construya un pequeño laboratorio de higiene de sistemas de diseño.
Qué puede hacer con ella
Edición perceptual con tono y croma independientes
Convierta tripletes RGB de marca en CIE LCH para que los diseñadores giren el tono o escalen el croma manteniendo fija la luminosidad en rampas y variantes.
Tareas y demostraciones didácticas
Verifique el trabajo de conversión de sRGB a LCH de los estudiantes y demuestre en vivo XYZ, Lab y LCH polar sin calculadoras opacas.
Preguntas frecuentes
¿Cuánto cuesta el convertidor de RGB a LCH?
Es gratis en su navegador en esta página.
¿Qué rango se permite para r, g y b?
Cada canal debe ser un entero de 0 a 255 inclusive.
¿Qué punto blanco y qué ruta usa?
La cadena es sRGB → linear → XYZ → Lab → LCH.
¿Cómo se definen C* y h° a partir de Lab?
C* es hypot(a*, b*). El tono h° es atan2(b*, a*) en grados, envuelto a [0, 360). Cuando C* es efectivamente cero (acromático), h° se define como 0.
¿Por qué un gris recibe un tono de 0?
El gris, el negro y el blanco no tienen croma, así que su ángulo de tono no está definido. El conversor lo fija en 0 por convención, para que el mismo color neutro dé siempre el mismo resultado.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/color/rgb-lch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":128,"b":0}'const res = await fetch("https://api.kit.forhosting.com/color/rgb-lch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 128,
"b": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb-lch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 128,
"b": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb-lch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":128,"b":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":128,"b":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb-lch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"r": 255,
"g": 128,
"b": 0
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_lch",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
min_channel | 0 |
max_channel | 255 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Los canales fuera de cero a doscientos cincuenta y cinco se rechazan con un error claro de invalid_input, en lugar de limitarse en silencio.
Qué significa la conversión de RGB a LCH y qué contiene la respuesta
La respuesta devuelve los enteros validados r, g y b; L, C y H (con alias L_star, C_star y h_deg); a* y b* intermedios de Lab como a, lab_b, a_star y b_star para que b* de Lab no choque con el canal azul de RGB; X Y Z intermedios; cadenas de resumen rgb, lch y lab; white_point fijado a D65; la etiqueta de método rgb_to_lch; y un breve recordatorio de la fórmula. El motor construye un triplete LCH exacto para tres canales legales o rechaza la solicitud con invalid_input. Los casos rechazados incluyen la falta de un campo r, g o b, cadenas vacías tras recortar espacios, números que no son enteros, texto no numérico, Infinity o NaN, y cualquier canal estrictamente por debajo de cero o por encima de doscientos cincuenta y cinco.
Cómo se leen r, g y b, y cómo se mantiene reproducible LCH
Los espacios en blanco externos en los canales de cadena se recortan; se permite un signo más inicial opcional solo cuando los caracteres restantes son dígitos decimales que se interpretan como un entero dentro del rango. Un número JavaScript simple se acepta solo cuando es un entero finito dentro de cero a doscientos cincuenta y cinco; valores como ciento veintiocho coma cinco fallan la validación en lugar de redondearse, y los valores negativos o de doscientos cincuenta y seis en adelante fallan con un mensaje que nombra el canal y establece que debe permanecer dentro de cero a doscientos cincuenta y cinco. El rojo puro se mapea a una L* moderada con C* grande y un tono cercano a cuarenta grados; el blanco puro y el negro puro se mapean a croma cero con h° definido como cero; los verdes y azules saturados caen en los sectores de tono esperados del plano Lab. Los campos preferidos son r para rojo, g para verde y b para azul, pero se aceptan los alias red y R mayúscula para rojo, green y G mayúscula para verde, y blue y B mayúscula para azul, de modo que hojas de cálculo, cadenas de consulta y formularios tipados puedan reutilizar el mismo contrato sin renombrar columnas. Tras la validación, la conversión usa únicamente aritmética en forma cerrada sobre los canales lineales, el punto blanco D65, las identidades de Lab y las transformaciones polares de croma y tono, y luego redondea los componentes en coma flotante a un ancho decimal fijo para que los goldens de JSON y las aserciones de integración continua se mantengan estables entre plataformas. Combine la ejecución gratuita en el navegador de esta página con la API de pago cuando necesite el mismo resultado matemático dentro de un pipeline automatizado sin tener que reimplementar usted mismo la gamma inversa, la normalización D65 y la conversión polar de Lab a LCH.
Dónde encaja la conversión de RGB a LCH en el diseño, el estudio y el software
En esta página el trabajo se ejecuta enteramente en su navegador; a través de la API cada consulta exitosa cuesta $0.002, la validación fallida no se cobra, y nada se almacena después de que se devuelve la respuesta. Esa separación —exploración interactiva gratuita y una API de pago idéntica— coincide con el resto del catálogo tier A del KIT y le permite pasar de una demostración de aula o una revisión de diseño a un pipeline automatizado sin cambiar el resultado matemático.
Casos de integración
Fixtures de prueba deterministas
Genere resultados LCH reproducibles para pruebas unitarias, verificaciones de propiedades y aserciones de integración continua en ayudantes de color y tokens de diseño.
Preguntas técnicas
¿Por qué se rechaza 256 en lugar de limitarlo?
La limitación silenciosa oculta errores de datos. Los canales fuera de rango fallan con invalid_input para que el llamador corrija los valores de origen en lugar de publicar el color incorrecto.