Simular protanomalía en un color
La protanomalía es una forma habitual de tricromacia anómala en la que los conos de longitud de onda larga (L) de la retina presentan sensibilidad reducida a la luz roja.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Diseñadores, auditores de accesibilidad y docentes suelen necesitar una vista previa rápida y determinista de cómo se vería un color de marca, una serie de gráfico o un estado de interfaz cuando la discriminación del rojo se debilita: no una protanopía completa, sino una mezcla parcial entre la visión normal y una proyección protánica. Esta herramienta para simular protanomalía en un color acepta un color hex o RGB más una severidad opcional de cero a uno, convierte el color al espacio de conos LMS, aplica parcialmente una transformada protánica al estilo Viénot que reconstruye el canal L a partir de M y S, vuelve a RGB y devuelve el hex simulado, los canales y la cadena CSS. Severidad cero deja el color sin cambios; severidad uno aproxima protanopía completa; el valor predeterminado de cero coma seis modela una protanomalía moderada típica. El mismo algoritmo puro impulsa el widget gratuito del navegador y la ruta API, de modo que los tokens de diseño y las comprobaciones automáticas de contraste nunca discrepan sobre la muestra filtrada.
Cómo usarla
Ingrese sus datos en el formulario de arriba. La herramienta los revisa antes de calcular y muestra el resultado en la misma página.
Revise sus datos
Use las etiquetas y unidades indicadas en cada campo. Si falta algo o un valor está fuera del rango permitido, la página señala qué debe corregir.
Repita el cálculo o automatícelo
Use la herramienta web para comprobaciones individuales y la API cuando necesite integrar la misma capacidad en un flujo automatizado.
Qué puede hacer con ella
Obtenga una respuesta ahora
Ingrese un conjunto de valores y vea el resultado sin preparar una hoja de cálculo ni un script.
Compare escenarios
Cambie un valor a la vez y repita el cálculo para entender qué modifica el resultado.
Automatice el trabajo repetido
Use la API cuando necesite ejecutar el mismo cálculo dentro de su producto o flujo.
Preguntas frecuentes
¿Qué es la protanomalía y cómo se simula aquí?
La protanomalía es sensibilidad reducida del cono L (rojo). Esta herramienta mapea RGB a LMS, reconstruye L a partir de M y S como en una proyección protánica, mezcla con el LMS original según la severidad y vuelve a RGB.
¿Qué hace el parámetro severity?
Severity es un peso de mezcla en [0, 1]. 0 devuelve el color original; 1 aplica la proyección de protanopía completa; el valor predeterminado 0.6 modela una protanomalía moderada típica. Alias: amount, strength, severity.
¿Qué formatos de color se aceptan?
Hex (#RGB o #RRGGBB), CSS rgb()/rgba(), texto r,g,b simple, o enteros r, g, b separados 0–255. Color ausente o inválido falla con invalid_input.
¿Es una prueba médica o de diagnóstico?
No. Es una aproximación de ingeniería para vistas previas de diseño y educación, no una evaluación clínica de la visión del color.
¿Cuánto cuesta el simulador de color protanomalía?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo KIT prepago a $0.002 por llamada exitosa; la entrada inválida no se factura.
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/sim-protanomaly \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#e74c3c","hex":"valor-ejemplo"}'const res = await fetch("https://api.kit.forhosting.com/color/sim-protanomaly", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#e74c3c",
"hex": "valor-ejemplo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/sim-protanomaly",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#e74c3c",
"hex": "valor-ejemplo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/sim-protanomaly", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#e74c3c","hex":"valor-ejemplo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#e74c3c","hex":"valor-ejemplo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/sim-protanomaly", 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
{
"color": "#e74c3c",
"hex": "valor-ejemplo"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.sim_protanomaly",
"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. |