Luminosità percepita
Il calcolatore della luminosità percepita trasforma i valori dei canali rosso, verde e blu in un pratico indice di luminanza.
Esegui gratis nel browser
Applica la nota formula RGB ponderata, che attribuisce l’influenza maggiore al verde, poi al rosso e infine al blu. Il risultato viene classificato come chiaro o scuro rispetto a una soglia documentata e abbinato al colore di testo nero o bianco consigliato. Lo utilizzi quando un tema, un badge, un grafico o uno sfondo scelto dall’utente richiede una decisione immediata e riproducibile sul primo piano.
Perché la luminosità percepita pondera i canali RGB
Una media semplice considera rosso, verde e blu come se la vista umana rispondesse allo stesso modo a ciascun canale, ma non è così. Il verde contribuisce molto di più alla luminosità percepita, il rosso ha un peso intermedio e il blu un peso minore. Questo calcolatore applica quindi i coefficienti classici di luminanza in stile BT.601: 0.299 per il rosso, 0.587 per il verde e 0.114 per il blu. Ogni canale deve essere un numero intero compreso tra 0 e 255. La somma ponderata produce un indice sulla stessa scala approssimativa da 0 a 255, dove il nero vale zero e il bianco 255. Il risultato viene arrotondato a tre decimali per restare leggibile senza sacrificare una precisione utile. Il calcolo è deterministico: valori RGB identici producono sempre la stessa uscita, senza consultare profili colore, usare la rete, introdurre casualità o dipendere dal dispositivo. È ideale per decisioni rapide di interfaccia, non per un’analisi completa dell’accessibilità o della gestione cromatica.
Come la classe chiara o scura determina il testo
Dopo aver calcolato la luminosità percepita, la capacità confronta l’indice con la soglia 128. Un valore uguale o superiore a 128 viene classificato come chiaro, mentre un valore inferiore viene classificato come scuro. Per uno sfondo chiaro la risposta consiglia testo nero; per uno sfondo scuro consiglia testo bianco. L’uscita comprende i canali originali, l’indice preciso, la classificazione, il colore del testo consigliato, la soglia e la formula. La Sua applicazione può quindi conservare o verificare la decisione senza affidarsi a un valore booleano non documentato. Il confine è esplicito: un indice esattamente pari a 128 appartiene alla classe chiara. In questo modo il comportamento resta coerente tra client diversi. Il suggerimento è una scelta binaria pratica per etichette, chip, avatar generati e anteprime dei temi. Non garantisce che ogni carattere o dimensione soddisfi una specifica norma di accessibilità; per la conformità formale, utilizzi un controllo del rapporto di contrasto.
Convalidi i canali e usi il risultato in sicurezza
Invii i componenti RGB nei campi r, g e b. Tutti e tre sono obbligatori, devono essere numerici, interi e inclusi nell’intervallo da 0 a 255. Valori come -1, 256, un canale frazionario, una stringa numerica, NaN o un campo mancante vengono rifiutati come input non valido anziché essere corretti silenziosamente. Una convalida rigorosa è importante perché una correzione automatica può nascondere errori di conversione a monte e rendere un progetto salvato diverso dall’anteprima. Dopo una risposta valida, usi classification se Le serve soltanto una diramazione chiara o scura, oppure applichi direttamente recommended_text_color se l’interfaccia accetta un colore esadecimale. perceived_brightness è utile per ordinare campioni o mostrare il calcolo. L’API costa $0.002 per richiesta, mentre il browser può eseguire localmente lo stesso calcolo deterministico. Per tavolozze grandi, calcoli ogni colore una sola volta e conservi il risultato con i valori RGB di origine.
Casi d'uso
Scegliere il testo per badge generati
Selezioni testo nero o bianco quando gli sfondi dei badge derivano dai dati dell’utente o da tavolozze generate.
Classificare i campioni di un tema
Contrassegni i colori salvati come chiari o scuri affinché l’editor mostri subito un primo piano adatto.
Verificare le decisioni automatiche sul primo piano
Conservi indice, soglia e formula insieme alla decisione grafica per poterla riprodurre in seguito.
Domande frequenti
Quale formula usa il calcolatore?
Usa 0.299 × rosso + 0.587 × verde + 0.114 × blu, con ogni canale nell’intervallo inclusivo da 0 a 255.
Quando un colore viene classificato come chiaro?
Un indice di luminosità percepita uguale o superiore a 128 è chiaro. Qualsiasi valore inferiore è scuro.
Il risultato garantisce la conformità WCAG?
No. Offre una scelta binaria rapida basata sulla luminosità percepita. Per una valutazione WCAG formale, utilizzi un controllo del contrasto.
Cosa accade se un canale è fuori dall’intervallo valido?
La richiesta non riesce e restituisce un errore di input non valido. I valori non vengono mai corretti silenziosamente.
Quanto costa un calcolo tramite API?
Ogni richiesta API costa $0.002. La versione nel browser può eseguire localmente lo stesso calcolo deterministico.
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/luminance-perceived \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":52,"g":152,"b":219}'const res = await fetch("https://api.kit.forhosting.com/color/luminance-perceived", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 52,
"g": 152,
"b": 219
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/luminance-perceived",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 52,
"g": 152,
"b": 219
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/luminance-perceived", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":52,"g":152,"b":219}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":52,"g":152,"b":219}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/luminance-perceived", 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": 52,
"g": 152,
"b": 219
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.luminance_perceived",
"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. |