Limitare un colore alla gamma
Riporti nella scala da 0 a 255 i valori RGB che ne escono: rosso 300, verde −20 e blu 127.5 diventano 255, 0 e 127.5, e Lei vede quali canali sono cambiati. Nulla viene arrotondato lungo il percorso. Gratis nel Suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Resistenza (Ω)
- 300
- G
- -20
- B
- 127,5
- Resistenza (Ω)
- 255
- G
- 0
- Rgb
- rgb(255, 0, 127.5)
- Canali modificati
- r, g
Limiti un colore alla gamma quando i dati RGB contengono canali inferiori a zero o superiori a 255. Questo strumento deterministico convalida rosso, verde e blu, quindi corregge ogni canale in modo indipendente portandolo al confine più vicino dell’intervallo standard a otto bit. I valori già compresi nell’intervallo restano invariati, incluse le frazioni, perché limitare riguarda i confini e non la precisione. La risposta mostra i canali corretti, una stringa RGB leggibile, se qualcosa è cambiato e quali canali sono stati sistemati.
Che cosa significa limitare un colore RGB alla gamma
Un colore RGB a otto bit rappresenta normalmente rosso, verde e blu su una scala inclusiva da 0 a 255. I dati esterni a questi limiti non sono direttamente rappresentabili nell’intervallo: un canale rosso pari a 300 è troppo alto, mentre un verde pari a -20 è troppo basso. Il clamping risolve questo problema assegnando 0 a ogni valore inferiore, 255 a ogni valore superiore e lasciando invariati quelli intermedi.
Ogni canale viene gestito separatamente, quindi la correzione del rosso non modifica il verde o il blu. Lo strumento restituisce r, g e b limitati e una stringa della funzione rgb che descrive lo stesso risultato. Questa operazione è più circoscritta di una conversione cromatica, di una mappatura tra spazi o di una compressione percettiva.
Non trasforma HSL, Lab, Display P3 o CMYK e non cerca di preservare la tonalità percepita dopo una conversione. Il suo compito concreto è convalidare tre canali numerici e inserirli in modo trasparente e riproducibile nell’intervallo consentito da 0 a 255.
Convalida, canali frazionari e risultati deterministici
Tutti e tre i canali sono obbligatori e devono contenere numeri finiti. La notazione scientifica è ammessa quando produce un numero finito. Dopo la convalida, l’algoritmo calcola il minimo tra 255 e il massimo tra 0 e il valore del canale.
La formula non presenta soglie nascoste, regole locali o rami dipendenti dalla piattaforma. I valori frazionari già nell’intervallo vengono conservati: 127.5 rimane 127.5. La scelta è intenzionale, perché limitare e arrotondare sono operazioni diverse.
L’implementazione non usa rete, data corrente, casualità, stato condiviso o modelli esterni. Input validi identici generano quindi sempre gli stessi dati serializzati.
Dove inserire il clamping RGB nel flusso di lavoro
I valori cromatici attraversano spesso sistemi che adottano presupposti diversi. Un calcolo di shader può eccedere dopo l’aggiunta di luce, un’esportazione di analisi delle immagini può contenere una piccola componente negativa, una formula di foglio elettronico può produrre 255.2 e un interpolatore di animazione può oltrepassare brevemente la destinazione. Il clamping è utile nel punto in cui tali valori devono diventare normali canali RGB per canvas, generatori CSS, miniature, protocolli di dispositivi o token di design.
Lo collochi dopo il calcolo che può eccedere e prima del componente che richiede canali limitati. I campi relativi alle modifiche possono alimentare log e metriche di qualità: Lei può accettare il colore corretto per maggiore resilienza e registrare che i dati a monte richiedevano una riparazione. Non utilizzi il clamping per nascondere input sistematicamente errati né come mappatura percettiva di spazi ad ampia gamma.
Casi d'uso
Stabilizzare le pipeline di rendering
Corregga i risultati aritmetici prima di passarli a canvas, generatori CSS o motori di rendering delle immagini.
Domande frequenti
Che cosa accade a un canale inferiore a zero?
Diventa 0. Gli altri canali vengono valutati separatamente e restano invariati se sono già nell’intervallo.
Che cosa accade a un canale superiore a 255?
Diventa 255, il limite superiore dell’intervallo supportato per i canali RGB.
I valori RGB frazionari vengono arrotondati?
No. I valori finiti da 0 a 255 vengono conservati, perché questa capacità limita i confini senza arrotondare la precisione.
Quali input vengono rifiutati?
Tutti e tre i canali RGB sono obbligatori.
Come so quali canali sono stati corretti?
Il risultato indica se qualcosa è cambiato ed elenca in ordine i canali sistemati. Con rosso 300, verde −20 e blu 127.5 compaiono solo rosso e verde, perché il blu era già dentro l’intervallo.
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/clamp-gamut \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":300,"g":-20,"b":127.5}'const res = await fetch("https://api.kit.forhosting.com/color/clamp-gamut", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 300,
"g": -20,
"b": 127.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/clamp-gamut",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 300,
"g": -20,
"b": 127.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/clamp-gamut", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":300,"g":-20,"b":127.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":300,"g":-20,"b":127.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/clamp-gamut", 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": 300,
"g": -20,
"b": 127.5
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.clamp_gamut",
"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
Può usare lo strumento nel browser per interventi rapidi o l’API a $0.002 per richiesta in pipeline, importazioni, test e automazioni dei sistemi di design.
Che cosa significa limitare un colore RGB alla gamma
Restituisce inoltre il booleano changed e l’elenco ordinato channels_changed, permettendoLe di distinguere un input pulito da uno riparato senza confrontare manualmente i numeri.
Convalida, canali frazionari e risultati deterministici
I campi preferiti sono r, g e b, ma sono accettati anche gli alias descrittivi red, green e blue. Le stringhe rigorosamente numeriche sono valide per moduli, record provenienti da CSV e parametri di query; stringhe vuote, parole, valori booleani, array, oggetti, Infinity e NaN vengono invece rifiutati con invalid_input. Lo zero negativo diventa zero, evitando una rappresentazione con segno superflua nel JSON. L’indicatore changed è vero soltanto se almeno un valore supera un confine, mentre channels_changed elenca i nomi brevi interessati nell’ordine stabile rosso, verde e blu.
Dove inserire il clamping RGB nel flusso di lavoro
Nei test controlli sia i canali sia channels_changed, così modifiche future non potranno introdurre riavvolgimenti, arrotondamenti o il rifiuto dell’intero colore. Nel browser viene eseguita la stessa implementazione pura; nell’automazione ogni richiesta API riuscita costa $0.002.
Casi di integrazione
Riparare record RGB importati
Limiti i canali provenienti da fogli elettronici, CSV o API prima di salvarli come dati RGB standard.
Creare fixture di test deterministiche
Verifichi i confini e registri esattamente quali canali RGB la pipeline ha dovuto correggere.
Domande tecniche
Quanto costa una richiesta API?
Una richiesta API riuscita costa $0.002. Può anche eseguire la stessa operazione deterministica nel browser.