Convertitore RGB-XYZ
Ottenga i valori CIE 1931 XYZ di un colore sRGB: l’arancione 255, 128, 0 dà X 48.96429558, Y 36.70460115 e Z 4.50627447 sulla scala da 0 a 100. Una base solida per passare a Lab e confrontare profili. 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
- X
- 48,96429558
- Y
- 36,70460115
- Z
- 4,50627447
- Punto bianco
- D65
Questo convertitore da RGB a XYZ trasforma i valori dei canali rosso, verde e blu sRGB in coordinate tristimolo CIE 1931 XYZ. Convalida ogni canale, rimuove la curva di trasferimento non lineare sRGB e applica la matrice di conversione D65 standard per l’osservatore a 2 gradi. I valori X, Y e Z sono restituiti nella consueta scala 0–100, pronti per calcoli colorimetrici, confronti tra profili e conversioni verso spazi come CIE L*a*b*.
Inserisca un colore sRGB valido
Indichi i canali rosso, verde e blu come numeri interi da 0 a 255. Sono i comuni valori sRGB utilizzati nei colori rgb() di CSS e nella maggior parte dei dati immagine destinati agli schermi. Tutti e tre i campi sono obbligatori, perché un risultato XYZ descrive il contributo luminoso combinato del colore completo.
Il convertitore rifiuta canali mancanti, numeri decimali, valori non numerici e numeri esterni all’intervallo consentito, anziché limitarli o interpretarli senza avviso. Questo comportamento rigoroso è utile nei flussi automatizzati: dati sorgente non validi producono un errore di input chiaro, non una coordinata plausibile ma errata. Per esempio, il rosso puro si inserisce come r 255, g 0 e b 0, mentre un grigio medio neutro usa lo stesso numero per tutti e tre i canali.
L’input viene interpretato specificamente come sRGB standard. I valori Adobe RGB, Display P3, ProPhoto RGB, RGB nativi di una fotocamera o provenienti da un profilo incorporato sconosciuto richiedono la matrice e la curva di trasferimento del relativo spazio e non devono essere inviati come se fossero sRGB.
Comprenda la linearizzazione gamma e la matrice
I valori sRGB memorizzati non sono lineari: vengono codificati con una curva di trasferimento progettata per i sistemi di visualizzazione e per sfruttare efficacemente la precisione visiva. La moltiplicazione matriciale deve operare su grandezze luminose lineari; il convertitore divide quindi ogni canale per 255 e applica la funzione inversa di compansione sRGB. I valori bassi seguono il ramo lineare, mentre quelli più alti usano il ramo con potenza 2.4 definito per sRGB.
Le componenti lineari rossa, verde e blu vengono poi moltiplicate per la matrice standard 3 per 3 da sRGB a XYZ. La matrice esprime i primari sRGB rispetto all’osservatore standard CIE 1931 a 2 gradi e al bianco di riferimento D65. X rappresenta in termini generali una componente di stimolo ponderata verso il rosso, Y coincide con la luminanza relativa e Z è fortemente ponderata verso il blu, ma nessuna delle tre va considerata un semplice canale RGB rinominato.
È essenziale mantenere separata la rimozione della gamma dalla conversione matriciale. Applicare la matrice direttamente ai valori codificati 0–255 genera coordinate sistematicamente errate, soprattutto nei mezzitoni e nei colori scuri.
Legga e utilizzi il risultato XYZ
La risposta riporta X, Y e Z su una scala 0–100 e indica esplicitamente il punto di bianco, l’osservatore e la scala, così il codice successivo non deve dedurre la convenzione. Per il bianco di riferimento sRGB, i valori sono circa X 95.047, Y 100 e Z 108.883; Z può quindi superare legittimamente 100 anche se l’etichetta della scala riporta 0–100. L’etichetta descrive la normalizzazione convenzionale in cui Y del bianco di riferimento vale 100, non un limite rigido per ogni componente.
XYZ viene spesso usato come spazio di connessione intermedio. Lei può normalizzare i valori e proseguire verso CIE L*a*b*, calcolare coordinate di cromaticità, confrontare punti di bianco o alimentare un flusso di gestione del colore che richieda esplicitamente dati XYZ D65. Nel confronto con un altro calcolatore o una libreria, verifichi il profilo RGB, l’osservatore, il bianco di riferimento, la scala, i coefficienti della matrice e l’arrotondamento.
Casi d'uso
Preparare un colore sRGB per la conversione LAB
Usi XYZ D65 come passaggio di connessione prima di applicare la trasformazione del bianco di riferimento CIE L*a*b*.
Verificare una libreria per il colore
Confronti l’output deterministico della matrice per campioni sRGB noti durante lo sviluppo o il collaudo del codice.
Calcolare coordinate colorimetriche
Trasformi i canali dei colori web in valori tristimolo per analisi di luminanza, cromaticità e profili.
Domande frequenti
Quanto costa la conversione?
Il convertitore nel browser è gratuito su questa pagina.
Quale spazio colore RGB utilizza il convertitore?
Utilizza i primari sRGB standard e la curva di trasferimento inversa sRGB. Non interpreta valori Adobe RGB, Display P3 o RGB nativi di un dispositivo.
Quali punto di bianco e osservatore vengono usati?
La matrice fa riferimento al punto di bianco D65 e all’osservatore standard CIE 1931 a 2 gradi.
Perché Z può superare 100?
La scala convenzionale normalizza Y del bianco di riferimento a 100. Con D65, la coordinata Z di quel bianco è circa 108.883, quindi valori superiori a 100 sono validi.
Sono accettati canali RGB decimali o fuori intervallo?
No. Ogni canale deve essere un intero da 0 a 255.
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-xyz \
-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-xyz", {
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-xyz",
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-xyz", 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-xyz", 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_xyz",
"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.
Limiti
min_channel | 0 |
max_channel | 255 |
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
Il browser e l’API eseguono lo stesso calcolo deterministico.
Legga e utilizzi il risultato XYZ
I risultati sono arrotondati a otto cifre decimali per mantenere stabile il JSON e conservare una precisione superiore a quella richiesta dalla maggior parte delle interfacce e dei report.