Convertidor RGB a YUV
Separe un color RGB en brillo y dos diferencias de color: el naranja 255, 128, 0 da Y 0.5936509804, U −0.2921263922 y V 0.3564952157 con los pesos BT.601. Útil para revisar cálculos de vídeo y tratamiento de imagen. 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
- Y
- 0,5936509804
- U
- -0,2921263922
- Voltaje (V)
- 0,3564952157
- Forma estándar
- BT.601
Este convertidor de RGB a YUV transforma canales enteros rojo, verde y azul en luminancia y crominancia Y′UV analógicas mediante pesos BT.601 fijos. Introduzca cada canal entre 0 y 255 y recibirá componentes Y, U y V normalizados con redondeo decimal estable. El cálculo es determinista y local: no consulta servicios de red, no usa aleatoriedad, no lee la hora ni corrige datos inválidos en silencio.
Comprenda el resultado YUV analógico
RGB describe un color mediante la intensidad de sus canales rojo, verde y azul. Y′UV analógico reorganiza esas señales en un componente semejante a la luminancia y dos componentes de diferencia de color. El campo y asigna al verde la mayor influencia, seguido del rojo y del azul, conforme a los coeficientes BT.601 0.299, 0.587 y 0.114.
Los campos u y v transportan la crominancia: U representa principalmente la diferencia de azul y V la de rojo. Antes de aplicar la matriz, el convertidor divide cada entero entre 255, por lo que R, G y B quedan entre cero y uno. Y permanece entre cero y uno; U abarca aproximadamente de -0.436 a 0.436 y V de -0.615 a 0.615.
Los grises neutros producen crominancia prácticamente nula. La respuesta repite los canales validados, ofrece los tres componentes redondeados e identifica el estándar y el intervalo. Se trata expresamente de Y′UV analógico normalizado, no de YCbCr digital con desplazamientos como 16 y 128.
Esta diferencia es esencial al comparar bibliotecas de vídeo o tablas de difusión que llaman YUV de manera informal a códigos YCbCr.
Validación y cálculo reproducible
Proporcione r, g y b como enteros entre 0 y 255, ambos incluidos. Las cadenas numéricas con signo opcional se interpretan tras eliminar espacios exteriores; se rechazan fracciones, notación científica, valores vacíos, booleanos, matrices, objetos, Infinity y NaN. Todo número aceptado debe ser entero y estar dentro del intervalo. 256 y -1 no se recortan, porque esa corrección ocultaría píxeles dañados, escalas equivocadas o esquemas incompatibles.
Después de validar, cada canal se divide entre 255. Se calcula Y con 0.299R + 0.587G + 0.114B, U con -0.14713R - 0.28886G + 0.436B y V con 0.615R - 0.51499G - 0.10001B. Los resultados se redondean a diez decimales y el cero negativo se convierte en cero.
No intervienen red, estado guardado, azar, configuración regional ni fecha.
Uso correcto en flujos multimedia
Este convertidor sirve para estudiar modelos de color televisivos, verificar fórmulas gráficas, separar brillo de diferencias cromáticas y preparar ejemplos reproducibles de procesamiento de señales. Un especialista multimedia puede observar cómo los primarios distribuyen energía entre Y, U y V antes de estudiar submuestreo. Conserve siempre la convención junto al valor: la salida emplea señales RGB no lineales normalizadas y una matriz Y′UV de estilo BT.601.
No añade desplazamientos digitales, no cuantiza a códigos de vídeo de rango limitado, no submuestrea crominancia, no linealiza la transferencia sRGB, no cambia primarios ni codifica vídeo. Muchas aplicaciones llaman YUV a YCbCr, por lo que sus cifras pueden diferir. Compruebe si el otro sistema espera YCbCr digital completo o de estudio, enteros o fracciones normalizadas y qué matriz utiliza.
Qué puede hacer con ella
Enseñar luminancia y crominancia
Muestre cómo los primarios RGB contribuyen de forma distinta a la luminancia y a los dos ejes cromáticos con signo.
Validar entradas multimedia
Rechace canales de 8 bits mal formados o fuera de rango antes de una conversión RGB a YUV determinista.
Preguntas frecuentes
¿Es YUV analógico o YCbCr digital?
Es Y′UV analógico normalizado con pesos fijos derivados de BT.601. No añade desplazamientos digitales ni códigos de vídeo de rango limitado.
¿Qué intervalo de entrada se acepta?
Cada canal r, g y b debe ser un entero entre 0 y 255 inclusive.
¿Por qué U y V pueden ser negativos?
U y V son señales de diferencia de color con centro en el gris neutro. El signo marca la dirección en los ejes de diferencia azul y roja.
¿El convertidor limita canales inválidos?
No. Esa corrección ocultaría errores de origen; un canal menor que 0 o mayor que 255 devuelve un error.
¿Qué dan el gris, el negro y el blanco?
Cualquier gris neutro tiene U y V iguales a cero, porque sus tres canales son iguales. El negro queda en cero, cero, cero, y el blanco en Y igual a uno sin crominancia.
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-yuv \
-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-yuv", {
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-yuv",
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-yuv", 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-yuv", 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_yuv",
"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
Los valores fuera del intervalo permitido devuelven un error invalid_input en vez de limitarse. Puede usar la herramienta gratis en el navegador o llamar a la API por $0.002 por elemento correcto.
Validación y cálculo reproducible
También se aceptan los alias red, green y blue, además de R, G y B, para conectar formularios o tablas sin renombrar columnas. Los coeficientes, el orden de operaciones y el redondeo fijos garantizan JSON reproducible. Los fallos se presentan como invalid_input y, cuando es posible, indican el canal afectado.
Uso correcto en flujos multimedia
El navegador ejecuta gratis la misma lógica pura; las llamadas automatizadas cuestan $0.002 por elemento correcto. El rechazo de canales inválidos permite además usar el endpoint como frontera estricta antes de una canalización de color.
Casos de integración
Crear fixtures de conversión
Genere ternas YUV analógicas BT.601 estables para pruebas unitarias, ficheros golden y comparaciones entre lenguajes.
Preguntas técnicas
¿Cuánto cuesta el convertidor de RGB a YUV?
Puede ejecutarlo gratis en el navegador. Cada conversión correcta mediante API cuesta $0.002; las entradas inválidas se rechazan.