Convertire RGB in HSL
Converta un colore RGB nel suo equivalente HSL e ottenga un risultato compatto e prevedibile, facile da usare in strumenti di progettazione, fogli di stile e codice applicativo.
Esegui gratis nel browser
Inserisca i canali rosso, verde e blu compresi tra 0 e 255. Il convertitore restituisce la tonalità su un cerchio di 0–360 gradi e saturazione e luminosità come percentuali da 0 a 100. I canali mancanti, non numerici, infiniti o fuori intervallo vengono rifiutati anziché corretti senza avviso, così gli errori restano visibili e i dati successivi rimangono affidabili.
Inserisca correttamente i canali RGB
Fornisca tre campi numerici per rosso, verde e blu usando i nomi abbreviati r, g e b. Ogni canale deve essere compreso tra 0 e 255, estremi inclusi. Zero indica che il canale non fornisce intensità, mentre 255 rappresenta l'intensità massima. Sono ammessi anche valori decimali intermedi, utili quando un altro calcolo genera colori interpolati. Il convertitore evita deliberatamente di limitare i valori non validi. Se un canale è negativo, supera 255, manca, non è numerico oppure è infinito, la richiesta restituisce un errore di input. Questo comportamento rigoroso rende più sicuri i flussi automatizzati, perché un valore sorgente non valido non può trasformarsi silenziosamente in un colore plausibile ma errato. Come primo test noto, usi r 255, g 0 e b 0: il risultato è rosso con tonalità di zero gradi, saturazione completa e luminosità del cinquanta per cento. Quando copia valori da CSS, invii soltanto i numeri dei canali, senza il contenitore rgb(), virgole o simboli di percentuale. Mantenere numerico l'input evita inoltre ambiguità tra la scala RGB 0–255 e la notazione percentuale adottata da alcuni sistemi di progettazione.
Comprenda come viene calcolato il risultato HSL
La conversione normalizza prima ogni canale RGB dividendolo per 255. Individua quindi il maggiore e il minore tra i canali normalizzati. La loro media diventa la luminosità, mentre la differenza, chiamata croma, stabilisce se il colore possiede saturazione e una tonalità significativa. Quando il croma è zero, il colore è una sfumatura di grigio: la saturazione vale zero e per convenzione la tonalità viene indicata come zero, poiché nessuna posizione sul cerchio cromatico è visivamente distinguibile. Nei colori cromatici, la saturazione è il croma adattato alla luminosità corrente, mentre la tonalità dipende dal canale RGB maggiore. Rosso, verde e blu occupano settori diversi del cerchio e le differenze relative selezionano la posizione nel settore. La tonalità restituita è espressa in gradi da zero fino a un valore inferiore a 360. Saturazione e luminosità vengono moltiplicate per 100 ed espresse in percentuale. I risultati sono arrotondati a quattro decimali per offrire precisione utile e risposte stabili e leggibili. È la trasformazione RGB-HSL standard: riorganizza le stesse informazioni cromatiche senza applicare gestione del colore, correzione gamma o conversione di profilo.
Utilizzi HSL nei flussi di progettazione e applicativi
HSL è spesso più intuitivo di RGB quando occorre ragionare sulle varianti. La tonalità identifica la famiglia cromatica, la saturazione controlla quanto il colore appare vivido o grigio e la luminosità lo sposta verso il nero o il bianco. Dopo aver convertito un colore del marchio, Lei può conservarne la tonalità e regolare la luminosità per gli stati al passaggio, premuto o disabilitato. Una pipeline di dati può uniformare record cromatici misti in una rappresentazione HSL comune prima di ordinarli o raggrupparli. Un controllo qualità può anche confrontare i risultati con i token di progettazione e rifiutare subito canali RGB non validi. Ricordi che variazioni numeriche uguali non garantiscono variazioni visive uguali: HSL è comodo per i controlli, ma non è uno spazio cromatico percettivamente uniforme. Conservi inoltre i valori RGB originali se sono importanti conversioni inverse esatte, perché l'arrotondamento può introdurre una piccola differenza. L'operazione è deterministica e dipende soltanto dai numeri ricevuti: non accede alla rete, non usa casualità, orologi o archivi cromatici esterni. Input identici producono quindi output identici in chiamate ripetute, caratteristica adatta a test, script di build, integrazioni API e strumenti riproducibili per sistemi di progettazione.
Casi d'uso
Creare controlli del colore
Converta i canali RGB memorizzati prima di mostrare cursori per tonalità, saturazione e luminosità in un editor.
Produrre varianti dell'interfaccia
Ricavi i valori HSL di un colore base, quindi regoli luminosità o saturazione per gli stati interattivi.
Uniformare i record cromatici
Trasformi i campi RGB in una struttura HSL coerente per dati applicativi, test o report.
Domande frequenti
Quali valori RGB sono accettati?
Ciascuno dei campi r, g e b deve essere un numero finito compreso tra 0 e 255, estremi inclusi.
Quali intervalli usa il risultato?
La tonalità usa gradi da 0 a 360, mentre saturazione e luminosità usano percentuali da 0 a 100.
Quale tonalità viene restituita per il grigio?
Il grigio non ha una tonalità visivamente significativa; per convenzione vengono restituiti zero gradi e saturazione zero.
I canali fuori intervallo vengono limitati?
No. Ogni valore inferiore a 0 o superiore a 255 genera un errore di input, rendendo visibile il problema nei dati sorgente.
Quanto costa una conversione tramite API?
Ogni richiesta API costa $0.002. L'esperienza nel browser può eseguire localmente la stessa conversione deterministica.
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-to-hsl \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":128,"b":64}'const res = await fetch("https://api.kit.forhosting.com/color/rgb-to-hsl", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 128,
"b": 64
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb-to-hsl",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 128,
"b": 64
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb-to-hsl", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":128,"b":64}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":128,"b":64}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb-to-hsl", 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": 64
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_to_hsl",
"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. |