Sostituire un colore specifico in un'immagine
Trasformi il rosso in verde in un elenco di pixel: con una tolleranza di 32 cambiano il rosso puro e i due quasi rossi, quindi 3 pixel su 5 vengono sostituiti. Ogni canale è confrontato a parte, così si colgono anche le ombre dei bordi. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Pixel
- #FF0000, #FF2020, #00FF00, #0000FF, #FE0101
- Obiettivo
- #FF0000
- Tolleranza
- 32
- Sostituzione
- #00FF00
- Pixel
- #00FF00, #00FF00, #00FF00, #0000FF, #00FF00
- Numero di sostituzioni
- 3
- Conteggio totale
- 5
Un pixel conta come corrispondenza quando i suoi canali rosso, verde e blu differiscono dalla destinazione al massimo della tolleranza impostata: con zero vengono sostituite solo le corrispondenze esatte, mentre un valore più alto copre le sfumature e l'antialiasing dei bordi. È la versione deterministica e offline di una ricolorazione con bacchetta magica: nessuna decodifica dell'immagine, nessuna IA, solo una regola pulita di distanza per canale che può riprodurre ovunque.
Cosa significa sostituire un colore con tolleranza
Le immagini reali non contengono quasi mai un unico colore piatto. Un logo rosso è circondato da un alone di pixel rosati di antialiasing, e la fotografia di un'auto rossa contiene decine di rossi sotto luci diverse. Se cambiasse solo il valore esadecimale esatto, il risultato sarebbe irregolare e poco professionale.
La tolleranza risolve il problema definendo un intorno attorno alla destinazione: questo strumento misura, per ogni pixel, la massima differenza assoluta tra i canali rosso, verde e blu, e sostituisce il pixel quando tale distanza è minore o uguale alla tolleranza. Una tolleranza pari a 0 è uguaglianza stretta, utile per icone, sprite e grafiche piatte di interfaccia. I valori tra 16 e 48 sono l'intervallo abituale per gradienti e foto.
Come scegliere destinazione, tolleranza e sostituto
Inizi campionando il colore che vuole eliminare. La destinazione accetta un valore esadecimale standard #RRGGBB; se non è sicuro del valore esatto, uno strumento di colore dominante o di palette le dirà di cosa è fatta davvero l'immagine. Poi regoli la tolleranza partendo da zero: esegua con 0, controlli quanti pixel sono stati sostituiti e aumenti fino a coprire l'alone attorno al soggetto senza sconfinare negli elementi vicini.
Il sostituto è anch'esso un colore esadecimale, scritto così com'è in ogni pixel corrispondente: non c'è miscelazione, quindi lo scambio è nitido. Una salvaguardia da conoscere: la tolleranza deve essere zero o un intero positivo fino a 255.
Dove si inserisce in un flusso di lavoro reale
Input e output sono elenchi di colori di pixel, non file immagine codificati, il che rende questa capacità un mattoncino e non un editor fotografico completo. Chi la usa di solito estrae i pixel di una piccola risorsa — una favicon, una serie di grafico, uno sprite di gioco, un marcatore tipo QR —, la ricolora qui e riassembla l'immagine per conto proprio. I team di marketing la usano per generare le varianti colore di un unico render principale.
Le pipeline di grafici la usano per cambiare il colore di una serie senza rifare il rendering. Gli strumenti di accessibilità la usano per mappare i colori problematici su colori conformi.
Casi d'uso
Ricolorare varianti di prodotto
Cambi il colore principale di un render di prodotto per generare tutte le varianti da un'unica risorsa principale, con la tolleranza che copre le sfumature dei bordi.
Cambiare il tema di un grafico o sprite
Porti un colore della vecchia palette al nuovo colore del marchio su ogni pixel di una piccola grafica senza aprire un editor.
Correggere un colore per l'accessibilità
Sostituisca un colore di marchio non conforme con il suo equivalente accessibile in icone e grafiche di interfaccia prima della pubblicazione.
Domande frequenti
Quanto costa?
È anche gratuita nel suo browser in questa pagina.
Come viene decisa una corrispondenza?
Un pixel corrisponde quando la massima differenza per canale (rosso, verde o blu) rispetto al colore di destinazione è minore o uguale alla tolleranza. Con tolleranza 0 vengono sostituite solo le corrispondenze esatte.
Cosa succede se la tolleranza è negativa?
Una tolleranza negativa non ha senso e di solito indica un bug nel codice chiamante.
Accetta un file immagine?
No. Opera sui colori dei pixel dell'immagine, forniti come elenco di colori esadecimali #RRGGBB, e restituisce l'elenco ricolorato. La decodifica e il riassemblaggio dell'immagine restano a suo carico.
Quale tolleranza conviene usare?
Usi 0 per icone, sprite e grafiche piatte, e circa da 16 a 48 per sfumature e foto. Parta da zero, controlli quanti pixel sono cambiati e la aumenti finché l’alone è coperto senza invadere i colori vicini.
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/image/color-replace \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pixels":["#FF0000","#FF2020","#00FF00","#0000FF"],"target":"#FF0000","replacement":"#00FF00"}'const res = await fetch("https://api.kit.forhosting.com/image/color-replace", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pixels": [
"#FF0000",
"#FF2020",
"#00FF00",
"#0000FF"
],
"target": "#FF0000",
"replacement": "#00FF00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/color-replace",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pixels": [
"#FF0000",
"#FF2020",
"#00FF00",
"#0000FF"
],
"target": "#FF0000",
"replacement": "#00FF00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/color-replace", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pixels":["#FF0000","#FF2020","#00FF00","#0000FF"],"target":"#FF0000","replacement":"#00FF00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pixels":["#FF0000","#FF2020","#00FF00","#0000FF"],"target":"#FF0000","replacement":"#00FF00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/color-replace", 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
{
"pixels": [
"#FF0000",
"#FF2020",
"#00FF00",
"#0000FF"
],
"target": "#FF0000",
"replacement": "#00FF00"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.color_replace",
"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
max_pixels | 262144 |
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
L'API di sostituzione del colore prende i colori dei pixel di un'immagine, un colore di destinazione, una tolleranza e un colore sostitutivo, e restituisce l'elenco dei pixel con ogni pixel corrispondente già scambiato.
Cosa significa sostituire un colore con tolleranza
Poiché la regola è una semplice comparazione numerica, lo stesso input produce sempre lo stesso output: può provare nel browser e poi automatizzare la stessa identica chiamata tramite l'API con risultati identici, esattamente ciò che serve quando la ricolorazione alimenta una pipeline di build o un generatore di varianti.
Come scegliere destinazione, tolleranza e sostituto
Una tolleranza negativa viene rifiutata con un errore invalid_input invece di essere troncata in silenzio, perché un raggio negativo non ha senso e di solito segnala un bug nel codice chiamante, che lei preferirà vedere subito piuttosto che correggere dopo un'immagine impercettibilmente sbagliata.
Dove si inserisce in un flusso di lavoro reale
L'intera operazione è abbastanza economica da girare gratis nel suo browser in questa pagina, e costa $0.002 a richiesta tramite l'API quando la automatizza. Nessun file viene caricato o conservato, il calcolo è completamente deterministico e il limite di 262144 pixel per chiamata copre sprite e icone con ampio margine.
Domande tecniche
Il risultato è deterministico?
Sì. La regola è una semplice comparazione di distanza per canale, senza casualità, quindi lo stesso input produce sempre lo stesso output nel browser e tramite l'API.
C'è un limite di dimensione?
Fino a 262144 pixel per chiamata, che copre con ampio margine icone, sprite e piccole risorse.