Convertitore XYZ in hex
Inserisca X, Y e Z e ottenga il colore a schermo come codice esadecimale: 0, 0 e 0 danno il nero puro, #000000. I valori che uno schermo non può mostrare vengono portati al colore visualizzabile più vicino invece di fallire. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- X
- 0
- Y
- 0
- Z
- 0
- Resistenza (Ω)
- 0
- G
- 0
- B
- 0
- Hex
- #000000
Questo convertitore da XYZ a hex accetta tre numeri tri-stimolo CIE 1931 —X, Y e Z— e restituisce un colore esadecimale sRGB a sei cifre, deterministico, sotto il punto bianco D65 usato sul web. Il motore moltiplica per l'inversa della matrice standard sRGB-verso-XYZ di D65, limita ogni canale lineare fuori dal cubo unitario (gli stimoli fuori gamut si proiettano sul bordo visualizzabile più vicino), applica la codifica gamma IEC 61966-2-1, impacchetta i canali 0–255 in hex minuscolo e non chiama mai la rete, non campiona casualità né legge l'orologio.
Cosa significa la conversione da CIE XYZ a hex e cosa contiene la risposta
CIE XYZ è uno spazio tri-stimolo indipendente dal dispositivo in cui Y segue la luminanza relativa e X e Z portano il resto dello stimolo spettrale. Il web e la maggior parte dei display consumer parlano sRGB: tre canali a otto bit con gamma, impacchettati come cancelletto e sei cifre esadecimali. Collegare quei mondi richiede un illuminante e primarie fissi —qui l'illuminante D65 e le primarie sRGB codificate in IEC 61966-2-1.
L'XYZ relativo è la convenzione web abituale: il bianco diffuso si colloca vicino a Xn uguale a 0.95047, Yn uguale a 1.0, Zn uguale a 1.08883, e il nero puro è l'origine. Questo calcolatore moltiplica i Suoi X, Y e Z per l'inversa della matrice sRGB D65 per ottenere luce rossa, verde e blu lineare. Qualsiasi canale lineare sotto zero o sopra uno viene limitato all'intervallo unitario, così spettri fuori gamut producono ancora un colore di schermo definito invece di byte negativi o NaN.
La codifica gamma mappa poi la luce lineare sulla curva sRGB non lineare; i canali si scalano per duecentocinquantacinque, si arrotondano a interi e i sei nibble formano #RRGGBB. Non c'è un percorso silenzioso da NaN al nero né un punto bianco alternativo in questa pagina: se Le servono Adobe RGB, ProPhoto o un packaging Lab, usi uno strumento dedicato.
Dove un convertitore XYZ in hex si inserisce in design, scienza e software
I laboratori di calibrazione display convertono letture XYZ da spettrofotometro in hex sRGB per controlli visivi rapidi contro campioni di marca e mock di interfaccia. Le pipeline di color management che già memorizzano XYZ intermedio sotto D65 necessitano di un ultimo miglio verso i token CSS senza tirare un motore ICC completo in una funzione serverless.
I team di accessibilità e di design system documentano XYZ misurati o calcolati per rossi e neutri di marca, poi pubblicano l'hex sRGB limitato che va in prodotto così ingegneria e marketing condividono un'unica stringa. Gli studenti incontrano questa mappatura nei corsi di computer graphics e scienza del colore dopo XYZ e prima di implementare gamma e packaging hex; un oracolo deterministico consente di verificare i compiti senza calcolatori desktop opachi.
Lo abbini a strumenti da RGB a Lab o da hex a RGB quando serve il senso inverso o un intermedio percettivo, e ad altri convertitori gratuiti deterministici quando costruisce un piccolo laboratorio di igiene del colore.
Casi d'uso
Note di laboratorio e calibrazione display
Trasformi CIE XYZ misurato o calcolato sotto D65 in #RRGGBB CSS per controlli visivi, token di marca e report di calibrazione.
Compiti e demo didattiche
Verifichi il lavoro da XYZ a sRGB degli studenti e dimostri dal vivo il clamp di gamut senza app di calcolo opache.
Domande frequenti
Quanto costa il convertitore da XYZ a hex?
È gratis nel Suo browser, in questa pagina.
Quale punto bianco e quali primarie usa?
Illuminante D65 con le primarie sRGB standard (IEC 61966-2-1).
Cosa succede se XYZ è fuori dal gamut sRGB?
I canali RGB lineari vengono limitati a [0, 1] prima della codifica gamma. La risposta imposta clamped a true quando un canale è stato limitato e restituisce comunque un hex a sei cifre valido.
Quali valori XYZ danno il bianco?
Sulla consueta scala relativa, il bianco diffuso si trova vicino a X 0,95047, Y 1,0 e Z 1,08883 con D65. Valori vicini a questi restituiscono un codice quasi bianco, e 0, 0 e 0 restituisce il nero puro.
Il codice esadecimale è in maiuscolo o in minuscolo?
Il risultato principale è un codice di sei cifre in minuscolo con cancelletto, come #000000, pronto per il web. Riceve anche una copia in maiuscolo e una senza cancelletto, per incollare quella che il suo programma si aspetta.
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/xyz-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":0.4124564,"y":0.2126729,"z":0.0193339}'const res = await fetch("https://api.kit.forhosting.com/color/xyz-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 0.4124564,
"y": 0.2126729,
"z": 0.0193339
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/xyz-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 0.4124564,
"y": 0.2126729,
"z": 0.0193339
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/xyz-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":0.4124564,"y":0.2126729,"z":0.0193339}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":0.4124564,"y":0.2126729,"z":0.0193339}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/xyz-hex", 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
{
"x": 0.4124564,
"y": 0.2126729,
"z": 0.0193339
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.xyz_hex",
"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
Componenti mancanti o non finiti falliscono con invalid_input invece di inventare un colore.
Cosa significa la conversione da CIE XYZ a hex e cosa contiene la risposta
Il payload di successo ecoa gli x, y e z validati (arrotondati per un JSON stabile), i canali interi r, g e b, hex con cancelletto iniziale, hex_no_hash senza di esso, uppercase per fogli di stile che preferiscono A–F, una stringa di funzione rgb(), un booleano clamped vero quando un canale ha toccato un bordo di gamut, white_point impostato a D65, method xyz_to_hex e un breve promemoria della formula. Il motore costruisce un hex a sei cifre per tre numeri tri-stimolo finiti oppure rifiuta la richiesta con invalid_input.
Come X, Y e Z vengono letti, validati e convertiti in modo riproducibile
Non c'è un controllo di intervallo assoluto su X, Y o Z stessi: spettri misurati possono produrre valori fuori dal cubo sRGB, e il contratto è limitare l'RGB lineare derivato piuttosto che rifiutare la misura. Dopo la validazione, la conversione è solo aritmetica in forma chiusa: tre moltiplicazioni-somme per canale per la matrice inversa, tre clamp, tre rami gamma, tre scale e arrotondamenti, poi impacchettamento dei nibble con un alfabeto di cifre fisso. Il nero puro XYZ zero mappa a #000000 con clamped false; il bianco D65 a #ffffff; uno stimolo di rosso puro vicino alla primaria rossa sRGB a #ff0000. I campi preferiti sono x, y e z in minuscolo, ma gli alias maiuscoli X, Y e Z sono accettati così log di strumenti, fogli di calcolo e moduli tipizzati riutilizzano i nomi di colonna senza rinominarli. Gli spazi esterni sulle stringhe numeriche vengono tagliati; funzionano sia numeri JSON sia stringhe numeriche. Stringhe vuote dopo il trim, campi mancanti, oggetti, array, Infinity e NaN falliscono con un messaggio che nomina il campo e richiede un numero tri-stimolo CIE XYZ finito —tali fallimenti usano invalid_input e non vengono fatturati. Abbini l'esecuzione gratuita nel browser di questa pagina all'API a pagamento quando Le serve lo stesso risultato matematico dentro una pipeline automatizzata.
Dove un convertitore XYZ in hex si inserisce in design, scienza e software
In questa pagina il lavoro viene eseguito interamente nel Suo browser; tramite l'API ogni conversione riuscita costa $0.002, la validazione fallita non viene addebitata e nulla viene memorizzato dopo la risposta. Tale separazione —esplorazione interattiva gratuita e API a pagamento identica— corrisponde al resto del catalogo tier A del KIT e Le consente di passare da un taccuino di laboratorio o una revisione di design a una pipeline automatizzata senza cambiare il risultato matematico.
Casi di integrazione
Fixture deterministiche di design token
Generi stringhe hex riproducibili da colonne XYZ per test unitari, golden di CI e pipeline di design system.
Domande tecniche
Quali campi sono obbligatori?
Numeri finiti x, y e z (alias X, Y, Z). Campi mancanti, stringhe vuote, Infinity e NaN vengono rifiutati con invalid_input.
L'hex è maiuscolo o minuscolo?
Il campo hex principale è minuscolo con un # iniziale (ad esempio #ff0000). hex_no_hash omette il cancelletto; uppercase restituisce la forma #RRGGBB con A–F.