Ajustar color a gama
Vuelva a meter en la escala de 0 a 255 los valores RGB que se salen: rojo 300, verde −20 y azul 127.5 quedan en 255, 0 y 127.5, y usted ve qué canales cambiaron. No se redondea nada por el camino. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Resistencia (Ω)
- 300
- G
- -20
- B
- 127,5
- Resistencia (Ω)
- 255
- G
- 0
- Rgb
- rgb(255, 0, 127.5)
- Canales modificados
- r, g
Ajuste un color a la gama cuando sus datos RGB contengan canales inferiores a cero o superiores a 255. Esta herramienta determinista valida rojo, verde y azul y corrige cada canal por separado hasta el límite más cercano del rango estándar de ocho bits. Los valores que ya están dentro del rango permanecen intactos, incluidos los decimales, porque limitar el rango no significa redondear. La respuesta muestra los canales corregidos, una cadena RGB lista para usar, si hubo algún cambio y qué canales se repararon.
Qué significa ajustar un color RGB a la gama
Un color RGB de ocho bits suele expresar rojo, verde y azul en una escala inclusiva de 0 a 255. Los datos que quedan fuera no pueden representarse directamente en ese rango: un canal rojo de 300 es demasiado alto y uno verde de -20 es demasiado bajo. El ajuste resuelve ese problema asignando 0 a cualquier valor inferior, 255 a cualquiera superior y conservando los valores intermedios.
Cada canal se procesa por separado, de modo que corregir el rojo no altera el verde ni el azul. La herramienta devuelve r, g y b ya limitados, además de una cadena de función rgb con el mismo resultado. Este proceso es distinto de convertir espacios de color, comprimir perceptualmente o mapear gamas.
No transforma HSL, Lab, Display P3 ni CMYK, ni intenta conservar el tono percibido después de una conversión. Su tarea concreta es validar tres canales numéricos y situarlos de forma transparente y reproducible en el intervalo permitido de 0 a 255.
Validación, canales decimales y resultados deterministas
Todos son obligatorios y deben contener números finitos. La notación científica es válida si produce un número finito. Tras la validación, el algoritmo aplica el mínimo entre 255 y el máximo entre 0 y el valor del canal.
La fórmula no depende de configuraciones regionales, umbrales ocultos ni la plataforma. Los decimales dentro del rango se mantienen: 127.5 continúa siendo 127.5. Es una decisión intencional, pues ajustar y redondear son operaciones diferentes.
No se usan red, fecha, aleatoriedad, estado compartido ni modelos externos, por lo que la misma entrada válida siempre genera la misma salida serializada.
Dónde encaja este ajuste en un flujo de trabajo
Los colores suelen atravesar sistemas con supuestos distintos. Un cálculo de sombreado puede excederse al sumar luz, una exportación de análisis de imagen puede contener un componente negativo, una fórmula de hoja de cálculo puede producir 255.2 o una interpolación puede sobrepasar brevemente su destino. El ajuste resulta útil justo donde esos valores deben convertirse en canales RGB ordinarios para un lienzo, un generador de CSS, miniaturas, protocolos de dispositivos o tokens de diseño.
Colóquelo después del cálculo que puede exceder los límites y antes del consumidor que exige canales acotados. Los campos que informan cambios permiten registrar métricas de calidad: usted puede aceptar el color corregido y dejar constancia de que el origen necesitó reparación. No use este ajuste para ocultar entradas sistemáticamente defectuosas ni como sustituto de un mapeador perceptual para espacios de amplia gama.
Ambos caminos comparten el solucionador determinista, por lo que una muestra revisada manualmente puede pasar a producción sin cambiar la regla de corrección.
Qué puede hacer con ella
Estabilizar procesos de renderizado
Ajuste el resultado aritmético antes de enviarlo a un lienzo, un generador CSS o un renderizador de imágenes.
Crear casos de prueba deterministas
Verifique los límites y registre exactamente qué canales RGB tuvo que corregir un proceso.
Preguntas frecuentes
¿Qué ocurre con un canal inferior a cero?
Se convierte en 0. Los demás canales se evalúan por separado y no cambian si ya están dentro del rango.
¿Qué ocurre con un canal superior a 255?
Se convierte en 255, el límite superior del rango de canales RGB admitido.
¿Se redondean los valores RGB decimales?
No. Los valores finitos entre 0 y 255 se conservan porque esta capacidad limita el rango, no redondea la precisión.
¿Qué valores se rechazan en lugar de ajustarse?
Se rechazan los canales que faltan, las palabras, las casillas vacías y cualquier cosa que no sea un número finito. Se aceptan números escritos como texto y la notación científica cuando dan un número real.
¿Cómo sé qué canales se corrigieron?
El resultado indica si algo cambió y enumera en orden los canales ajustados. Con rojo 300, verde −20 y azul 127.5, solo aparecen el rojo y el verde, porque el azul ya estaba dentro del rango.
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/clamp-gamut \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":300,"g":-20,"b":127.5}'const res = await fetch("https://api.kit.forhosting.com/color/clamp-gamut", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 300,
"g": -20,
"b": 127.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/clamp-gamut",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 300,
"g": -20,
"b": 127.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/clamp-gamut", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":300,"g":-20,"b":127.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":300,"g":-20,"b":127.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/clamp-gamut", 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": 300,
"g": -20,
"b": 127.5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.clamp_gamut",
"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.
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
Puede usar la herramienta del navegador para una corrección rápida o la API por $0.002 por solicitud en canalizaciones, importaciones, pruebas y automatización de sistemas de diseño.
Qué significa ajustar un color RGB a la gama
También incluye el booleano changed y la lista ordenada channels_changed, para que usted distinga una entrada válida de otra reparada sin compararlas manualmente.
Validación, canales decimales y resultados deterministas
Los campos preferidos son r, g y b, aunque también se aceptan los alias descriptivos red, green y blue. Se admiten cadenas estrictamente numéricas procedentes de formularios, registros CSV o parámetros de consulta; en cambio, se rechazan con invalid_input las cadenas vacías, palabras, booleanos, matrices, objetos, Infinity y NaN. El cero negativo se convierte en cero y evita una representación con signo innecesaria en JSON. El indicador changed solo es verdadero si algún valor cruza un límite, mientras que channels_changed enumera los nombres abreviados afectados en el orden estable rojo, verde y azul.
Dónde encaja este ajuste en un flujo de trabajo
En pruebas, compruebe tanto los canales como channels_changed para impedir que futuras modificaciones introduzcan envoltura, redondeo o rechazo del color completo. En el navegador se ejecuta la misma implementación pura; en automatizaciones, cada solicitud correcta de API cuesta $0.002.
Casos de integración
Reparar registros RGB importados
Limite canales de hojas de cálculo, CSV o API antes de guardarlos como datos RGB estándar.
Preguntas técnicas
¿Cuánto cuesta una solicitud de API?
Cada solicitud correcta de API cuesta $0.002. También puede ejecutar la misma operación determinista en su navegador.
¿Qué entradas se rechazan?
Los canales ausentes, vacíos, no numéricos o no finitos generan invalid_input. Los tres canales RGB son obligatorios.