Convertitore RGB565
Questo convertitore RGB565 trasforma i canali rosso, verde e blu a otto bit nel formato compatto a sedici bit usato da display integrati, microcontrollori, risorse grafiche e framebuffer.
Esegui gratis nel browser
Può anche decodificare una parola RGB565 in canali scalati. Ogni conversione restituisce il valore decimale, l’esadecimale completato, i campi da cinque, sei e cinque bit e il risultato visibile del percorso inverso. La convalida rigorosa individua canali fuori intervallo e valori non validi prima che diventino silenziosamente un altro colore.
Impacchetti tre canali a 8 bit in una parola RGB565
Selezioni l’operazione di impacchettamento e inserisca canali interi r, g e b compresi tra 0 e 255. Il convertitore riduce prima rosso e blu da otto a cinque bit, con valori da 0 a 31. Il verde passa a sei bit, da 0 a 63, perché il layout RGB565 gli riserva un bit aggiuntivo. Ogni conversione usa una scala proporzionale con arrotondamento all’intero più vicino: 0 e 255 coincidono esattamente con gli estremi, mentre i colori intermedi adottano il livello disponibile più prossimo. Il rosso viene quindi collocato nei bit da 15 a 11, il verde nei bit da 10 a 5 e il blu nei bit da 4 a 0. Un’operazione OR combina i campi in un intero senza segno a sedici bit. La risposta comprende il valore decimale e un esadecimale uniforme di quattro cifre, utile per costanti C, codificatori binari, driver per display, tabelle e fixture. I campi separati consentono di controllare ogni passaggio senza affidarsi a un numero privo di spiegazione.
Comprenda la quantizzazione e il risultato di ritorno
RGB565 non conserva tutti i colori RGB a ventiquattro bit, poiché rappresenta 16,777,216 ingressi possibili con appena 65,536 valori. Colori vicini possono quindi produrre la stessa parola e lo spacchettamento non recupera le informazioni meno significative eliminate. Per rendere esplicita la perdita, la risposta include un oggetto con il colore a otto bit rappresentato dalla parola. Il decoder moltiplica rosso e blu a cinque bit per 255, divide per 31 e arrotonda; per il verde usa 255 e 63. Questa regola proporzionale è deterministica, conserva esattamente gli estremi ed è facile da riprodurre in JavaScript, C, Rust, Python e altri ambienti. I canali restituiti possono differire leggermente dall’ingresso a causa della quantizzazione prevista. Campi ridotti, parola impacchettata e canali espansi forniti insieme aiutano Lei a confrontare implementazioni, rilevare errori nell’ordine dei byte, verificare costanti e stabilire se la precisione sia sufficiente per uno specifico display o elemento grafico.
Spacchetti valori esistenti ed eviti errori di formato
Scelga l’operazione di spacchettamento se dispone già di una parola RGB565 proveniente da firmware, framebuffer, cattura di protocollo o file immagine. Fornisca value come cifre decimali da 0 a 65535 oppure in esadecimale con prefisso 0x. Il convertitore rifiuta valori negativi, frazioni, lettere esadecimali senza prefisso, caratteri finali e numeri oltre sedici bit invece di troncarli. L’uscita comprende l’intero decimale normalizzato, l’esadecimale completato, i tre campi memorizzati e i canali r, g e b scalati. RGB565 descrive la disposizione dei bit, non l’ordine dei byte. A seconda del dispositivo o formato, può comparire prima il byte alto o quello basso; li scambi prima della conversione se la sorgente usa l’ordine opposto. RGB565 è inoltre diverso da BGR565, che inverte rosso e blu. Questo strumento usa rosso nella parte alta e blu nella parte bassa. Il browser è ideale per verifiche singole; ogni richiesta API costa $0.002 per automazione, test o diagnostica.
Casi d'uso
Generi costanti per display
Converta i canali RGB del progetto in valori RGB565 completati per firmware, driver e tabelle di consultazione.
Verifichi i pixel del framebuffer
Decodifichi parole a sedici bit acquisite e confronti i canali espansi con i colori previsti dai test.
Crei fixture tra linguaggi
Registri ingressi, campi ridotti, parole impacchettate e canali restituiti per test coerenti tra dispositivi e applicazioni.
Domande frequenti
Come vengono ridotti i canali a 8 bit?
Rosso e blu usano round(canale × 31 ÷ 255), mentre il verde usa round(canale × 63 ÷ 255).
Perché il colore spacchettato può essere diverso?
L’impacchettamento elimina informazioni meno significative. Il ritorno è il colore più vicino rappresentato dalla parola RGB565.
Quali formati impacchettati sono accettati?
Usi cifre decimali da 0 a 65535 o una stringa esadecimale con prefisso 0x, come 0xF800.
Lo strumento scambia i byte?
No. Converte la parola RGB565 numerica; gestisca l’ordine dei byte quando legge o scrive il formato.
Quanto costa una conversione API?
Ogni richiesta API costa $0.002; nel browser è disponibile anche la conversione interattiva.
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/dev/rgb565-pack \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":128,"b":0}'const res = await fetch("https://api.kit.forhosting.com/dev/rgb565-pack", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 128,
"b": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/rgb565-pack",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 128,
"b": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/rgb565-pack", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":128,"b":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":128,"b":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/rgb565-pack", 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": 0
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.rgb565_pack",
"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. |