Convertitore RGB-YUV
Separi un colore RGB in luminosità e due differenze di colore: l’arancione 255, 128, 0 dà Y 0.5936509804, U −0.2921263922 e V 0.3564952157 con i pesi BT.601. Utile per controllare calcoli video e di elaborazione immagini. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Resistenza (Ω)
- 255
- G
- 128
- B
- 0
- Y
- 0,5936509804
- U
- -0,2921263922
- Tensione (V)
- 0,3564952157
- Forma standard
- BT.601
Questo convertitore da RGB a YUV trasforma i canali interi rosso, verde e blu in luminanza e crominanza Y′UV analogiche mediante pesi BT.601 fissi. Inserisca ogni canale tra 0 e 255 per ottenere Y, U e V normalizzati con arrotondamento stabile. Il calcolo è locale e deterministico: non usa rete, casualità, orologio né correzioni silenziose.
Comprendere il risultato YUV analogico
RGB descrive un colore tramite l’intensità dei canali rosso, verde e blu. Y′UV analogico riorganizza questi segnali in un componente simile alla luminanza e due differenze cromatiche. Il campo y assegna al verde l’influenza maggiore, poi al rosso e al blu, secondo i coefficienti BT.601 0.299, 0.587 e 0.114.
I campi u e v trasportano la crominanza: U rappresenta soprattutto la differenza del blu e V quella del rosso. Prima della matrice, ogni intero viene diviso per 255, quindi R, G e B sono normalizzati tra zero e uno. Y resta tra zero e uno, U varia circa da -0.436 a 0.436 e V da -0.615 a 0.615.
I grigi neutri generano crominanza quasi nulla. La risposta ripete i canali convalidati, fornisce i componenti arrotondati e specifica standard e intervallo. Il risultato è intenzionalmente Y′UV analogico normalizzato, non YCbCr digitale con offset quali 16 e 128.
La distinzione è fondamentale quando si confrontano codec, librerie di immagini o tabelle broadcast che chiamano informalmente YUV i codici YCbCr.
Convalida e calcolo riproducibile
Fornisca r, g e b come interi da 0 a 255 inclusi. Le stringhe numeriche con segno facoltativo vengono lette dopo la rimozione degli spazi esterni; frazioni, notazione scientifica, valori vuoti, booleani, array, oggetti, Infinity e NaN sono rifiutati. Ogni numero deve essere intero e nell’intervallo. 256 e -1 non vengono troncati, perché ciò nasconderebbe pixel corrotti, scale errate o schemi incompatibili.
Dopo la convalida, ciascun canale viene diviso per 255. Y usa 0.299R + 0.587G + 0.114B, U usa -0.14713R - 0.28886G + 0.436B e V usa 0.615R - 0.51499G - 0.10001B. I risultati sono arrotondati a dieci decimali e lo zero negativo diventa zero.
Non intervengono rete, stato persistente, casualità, impostazioni locali o data.
Uso corretto nei flussi multimediali
Questo convertitore è utile per studiare i modelli cromatici televisivi, verificare formule grafiche, separare luminosità e differenze cromatiche o preparare esempi riproducibili di elaborazione dei segnali. Un tecnico multimediale può osservare come i primari distribuiscono energia tra Y, U e V prima del sottocampionamento. Conservi la convenzione accanto al valore: l’output usa segnali RGB non lineari normalizzati e una matrice Y′UV in stile BT.601.
Non aggiunge offset digitali, non quantizza in codici video limitati, non sottocampiona la crominanza, non linearizza sRGB, non converte primari e non codifica video. Molti software chiamano YCbCr «YUV», quindi i valori possono differire. Verifichi la gamma digitale, il formato intero o frazionario e la matrice richiesti.
Casi d'uso
Spiegare luminanza e crominanza
Mostri come i primari RGB contribuiscono in modo diverso alla luminanza e ai due assi cromatici con segno.
Convalidare input multimediali
Rifiuti canali a 8 bit malformati o fuori intervallo prima della conversione deterministica da RGB a YUV.
Domande frequenti
È YUV analogico o YCbCr digitale?
È Y′UV analogico normalizzato con pesi fissi derivati da BT.601, senza offset digitali o codici video a gamma limitata.
Quale intervallo di input è accettato?
Ogni canale r, g e b deve essere un intero da 0 a 255 incluso.
Perché U e V possono essere negativi?
U e V sono segnali di differenza cromatica centrati sul grigio neutro. Il segno indica la direzione sugli assi blu e rosso.
Il convertitore limita i canali non validi?
No. La limitazione nasconderebbe errori a monte; un canale inferiore a 0 o superiore a 255 restituisce un errore.
Che cosa danno il grigio, il nero e il bianco?
Qualsiasi grigio neutro ha U e V pari a zero, perché i suoi tre canali sono uguali. Il nero diventa zero, zero, zero, e il bianco dà Y pari a uno senza crominanza.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"r": 255,
"g": 128,
"b": 0
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_yuv",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Un valore fuori intervallo restituisce invalid_input anziché essere limitato. Può usare gratuitamente lo strumento nel browser oppure chiamare l’API al costo di $0.002 per elemento valido.
Convalida e calcolo riproducibile
Sono accettati anche gli alias red, green e blue e le maiuscole R, G e B, così può collegare moduli e tabelle senza rinominare colonne. Coefficienti, ordine e arrotondamento fissi rendono JSON riproducibile. Gli errori diventano invalid_input e indicano il canale quando possibile.
Uso corretto nei flussi multimediali
Nel browser la stessa logica è gratuita; ogni elemento API valido costa $0.002. Il rifiuto dei canali non validi rende inoltre l’endpoint un confine rigoroso prima della pipeline del colore.
Casi di integrazione
Creare fixture di conversione
Generi terne YUV analogiche BT.601 stabili per test unitari, file golden e confronti tra linguaggi.
Domande tecniche
Quanto costa il convertitore da RGB a YUV?
Può eseguirlo gratis nel browser. Una conversione API valida costa $0.002; gli input non validi vengono rifiutati.