Desempaquetador RGB555 a canales RGB de 8 bits
Convierta un número RGB555 empaquetado en RGB corriente: 0x7C1F da rojo 255, verde 0 y azul 255. Cada nivel de cinco bits se escala al rango completo de 0 a 255, para leer gráficos retro y volcados de dispositivos como colores reales. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Valor
- 0x7C1F
- Valor
- 31 775
- Hex
- 0x7C1F
- Red
- 255
- Verde
- 0
El desempaquetador de RGB555 a RGB convierte un color empaquetado sin signo de 15 bits en valores separados de rojo, verde y azul aptos para flujos modernos de 8 bits. Acepta texto decimal o hexadecimal iniciado por 0x, valida la entrada completa, extrae los tres campos de cinco bits y escala cada uno al intervalo de 0 a 255. El resultado conserva además los componentes originales y una representación hexadecimal normalizada, para que usted pueda inspeccionar, comparar, probar o integrar la conversión con facilidad.
Comprenda la distribución de bits de RGB555
RGB555 guarda tres canales de color en quince bits significativos. En este desempaquetador, los bits 14 a 10 contienen el rojo, los bits 9 a 5 el verde y los bits 4 a 0 el azul. Cada campo representa, por tanto, un entero entre 0 y 31.
El valor empaquetado aceptado es unsigned y debe estar entre 0 y 32767; el bit superior adicional no se interpreta como transparencia, intensidad ni relleno. Usted puede proporcionar texto decimal, como 31775, o hexadecimal con el prefijo 0x explícito, como 0x7C1F. La salida incluye una forma hexadecimal normalizada de cuatro dígitos, además de cada componente original de cinco bits y su canal ampliado de ocho bits.
Así puede contrastar el resultado con volcados de memoria o documentación de formatos y comprobar máscaras y desplazamientos sin hacer las operaciones manualmente.
Vea cómo cinco bits se convierten en ocho
Tras la extracción, cada componente se escala a todo el intervalo de ocho bits mediante la fórmula round(componente × 255 ÷ 31). Un componente almacenado de 0 se convierte en 0 y uno de 31 se convierte en 255. Los valores intermedios se distribuyen de forma determinista.
Se trata de una ampliación numérica, no de recuperar información cromática inexistente: RGB555 solo contiene 32 niveles por canal. La regla se declara porque algunos conversores aplican un desplazamiento a la izquierda, cuyo máximo es 248, o replican bits.
Valide colores empaquetados en procesos reales
Utilice el desempaquetador al revisar gráficos retro, datos de pantallas integradas, texturas, registros binarios, estados de emuladores o formatos que definan RGB555 con el rojo en el campo más significativo. No debe confundirse con BGR555, que invierte posiciones, ni con RGB565, que asigna seis bits al verde. Se rechazan texto mal formado, signos, fracciones, dígitos hexadecimales sin prefijo 0x, caracteres finales y valores fuera del intervalo unsigned de 15 bits, en vez de analizarlos parcialmente.
Así, 123abc nunca se convierte silenciosamente en 123. Como el algoritmo no usa red, azar, reloj, análisis dependiente de configuración regional ni estado mutable, una misma entrada válida genera siempre la misma salida.
Qué puede hacer con ella
Inspeccionar colores de juegos retro
Convierta entradas de paleta empaquetadas en canales de 8 bits y conserve los componentes de cinco bits para depuración.
Validar datos de pantallas integradas
Compruebe valores de registros o búferes RGB555 y rechace los que superen el intervalo unsigned de 15 bits.
Preparar registros de color decodificados
Transforme valores hexadecimales o decimales en campos numéricos con nombre para pruebas, migraciones o análisis.
Preguntas frecuentes
¿Qué orden de bits utiliza este desempaquetador?
El rojo ocupa los bits 14–10, el verde los bits 9–5 y el azul los bits 4–0.
¿Cómo se amplían los canales de cinco bits?
Cada componente se calcula como round(componente × 255 ÷ 31), lo que produce un entero de 0 a 255.
¿Puedo introducir un valor hexadecimal?
Sí. Use el prefijo 0x, por ejemplo 0x7C1F. Los dígitos hexadecimales sin ese prefijo se rechazan.
¿Admite RGB565 o BGR555?
No. Esas distribuciones asignan u ordenan los bits de otra manera; esta capacidad solo decodifica el RGB555 documentado.
¿Qué sucede con el bit 15?
Se rechazan los valores superiores a 0x7FFF. La capacidad no interpreta un bit superior como alfa ni como indicador.
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/rgb555-rgb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"0x7C1F"}'const res = await fetch("https://api.kit.forhosting.com/color/rgb555-rgb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "0x7C1F"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb555-rgb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "0x7C1F"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb555-rgb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"0x7C1F"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"0x7C1F"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb555-rgb", 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
{
"value": "0x7C1F"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb555_rgb",
"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
Vea cómo cinco bits se convierten en ocho
Esta capacidad utiliza siempre la fórmula de escalado y ofrece una salida JSON estable tanto en la API como en el navegador. Los campos red_5bit, green_5bit y blue_5bit permanecen en la respuesta para que usted verifique las máscaras o aplique después otra política exigida por un sistema heredado.
Valide colores empaquetados en procesos reales
Para automatizar, envíe un valor por solicitud y consuma los campos numéricos. El precio base de la API es $0.002 por solicitud.