ForHosting KIT · Immagini e foto

Impacchettatore RGB in RGB565

Trasformi un colore RGB nella parola a 16 bit che un display TFT si aspetta: l’arancione 255, 128, 0 diventa 64512, cioè 0xFC00. Il rosso tiene cinque bit, il verde sei e il blu cinque, troncati e non arrotondati. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Resistenza (Ω)
255
G
128
B
0
Ottiene
Rgb565
64.512
Hex
0xFC00
Cifre esadecimali
FC00
Bit
1111110000000000

I controller TFT embedded, le librerie grafiche per microcontrollori e molte console portatili memorizzano ogni pixel come una sola parola RGB565 a sedici bit, invece di tre canali a otto bit distinti. La conversione è del tutto deterministica, non arrotonda, non chiama la rete e non dipende mai dall'orologio.

Come funziona l'impacchettamento RGB565 e che cosa contiene la risposta

Nel sRGB a otto bit ciascuno di rosso, verde e blu è un intero da zero a duecentocinquantacinque, più precisione di quanta un framebuffer a sedici bit possa conservare. RGB565 destina cinque bit al rosso, sei al verde e cinque al blu perché l'occhio umano è più sensibile al verde, così il bit extra si spende dove riduce di più le bande di colore.

Questo impacchettatore usa il troncamento standard di settore, non l'arrotondamento: il rosso viene spostato di tre bit a destra, il verde di due bit a destra e il blu di tre bit a destra, scartando i bit bassi inutilizzati. I tre campi vengono poi assemblati come rosso spostato di undici bit a sinistra, disgiunzione bit a bit con il verde spostato di cinque bit a sinistra, disgiunzione bit a bit con il blu, producendo un intero senza segno unico da zero a sessantacinquemilacinquecentotrentacinque.

Il nero puro si impacchetta a zero, il bianco puro al massimo, il rosso puro diventa la familiare parola esadecimale F800, il verde puro 07E0 e il blu puro 001F. Non c'è avvolgimento silenzioso di duecentocinquantasei, né arrotondamento dei bit scartati, né rete o orologio nel percorso, così la stessa terna produce sempre la stessa parola a sedici bit.

Palette di firmware per TFT

Trasformi terne RGB di marca in parole RGB565 per le tabelle colore di ILI9341, ST7735, ST7789 e Adafruit GFX.

Conversione di sprite e framebuffer

Impacchetti risorse offline in array C a 16 bit e byte alto e basso SPI che rispettano l'ordine del controller.

Test deterministici dei driver

Fissi oracoli RGB565 troncati in CI così un nuovo aiutante grafico non passa in silenzio all'arrotondamento.

Come si converte RGB in RGB565?

Il campo rgb565 della risposta è la parola a 16 bit impacchettata; hex è la forma a quattro cifre con prefisso 0x usata nel firmware.

Questo impacchettatore arrotonda o tronca i bit in più?

Tronca. Rosso e blu scartano i loro 3 bit bassi (>> 3) e il verde scarta i suoi 2 bit bassi (>> 2). Ciò coincide con Adafruit GFX, TFT_eSPI e gli esempi tipici dei controller TFT. Non c'è arrotondamento.

Che cosa succede se un canale esce da 0–255?

I canali non vengono mai saturati né avvolti, così un 256 da un selettore rotto non può diventare un pixel sbagliato.

L'impacchettatore da RGB a RGB565 è gratuito?

Lo strumento del browser gira gratis sul Suo dispositivo.

Perché il verde riceve sei bit e il rosso e il blu solo cinque?

L'occhio umano è più sensibile al verde, così RGB565 spende il bit extra lì.

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.

POSThttps://api.kit.forhosting.com/color/rgb-rgb565

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/color/rgb-rgb565 \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"r":255,"g":128,"b":0}'
{
  "r": 255,
  "g": 128,
  "b": 0
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.rgb_rgb565",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

min_channel0
max_channel255
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Questo impacchettatore da RGB a RGB565 prende interi di rosso, verde e blu da zero a duecentocinquantacinque e li comprime troncando i bit bassi inutilizzati: cinque bit di rosso, sei di verde e cinque di blu, poi assembla il classico schema a sedici bit usato da ILI9341, ST7735, ST7789, SSD1351, Adafruit GFX e TFT_eSPI. I canali fuori da zero a duecentocinquantacinque vengono rifiutati con un errore invalid_input chiaro, anziché essere avvolti o saturati in silenzio.

Come funziona l'impacchettamento RGB565 e che cosa contiene la risposta

La risposta ripete i canali validati r, g e b, restituisce l'intero impacchettato come rgb565, una stringa esadecimale di quattro cifre in maiuscolo con prefisso 0x, le quattro cifre hex da sole, una stringa binaria di sedici caratteri, i campi troncati r5, g6 e b5, i canali a otto bit ricostruiti r_q, g_q e b_q spostando di nuovo a sinistra quei campi troncati, i byte alto e basso che un trasferimento SPI verso un controller della famiglia ILI9341 si aspetta in quell'ordine, stringhe CSS rgb del colore originale e di quello quantizzato, l'etichetta di metodo truncate_rgb565, la formula dei bit e max sempre uguale a 65535.

Come vengono validati r, g e b e perché il troncamento resta onesto

Gli spazi esterni sui canali stringa vengono eliminati; un più iniziale facoltativo è ammesso solo quando i caratteri restanti sono cifre decimali che si interpretano come un intero nell'intervallo. Valori come centoventotto punto cinque falliscono la validazione invece di essere arrotondati, e i numeri negativi o da duecentocinquantasei in su falliscono con un messaggio che nomina il canale e afferma che deve restare tra zero e duecentocinquantacinque. I campi mancanti e le stringhe vuote dopo il trim vengono rifiutati allo stesso modo. Il troncamento è il contratto perché Adafruit GFX, TFT_eSPI, gli esempi del datasheet ILI9341 e quasi ogni macro di colore Arduino scartano i bit bassi con uno scorrimento a destra; un impacchettatore che arrotondasse sarebbe in disaccordo con il firmware già in campo e romperebbe i test aurei che fissano 0xF800 per il rosso pieno. I campi preferiti sono r per il rosso, g per il verde e b per il blu. Sono accettati gli alias red e R maiuscola, green e G maiuscola, e blue e B maiuscola, così fogli di calcolo, query string e moduli tipizzati riutilizzano il contratto senza rinominare colonne. Un numero JSON nudo è accettato solo se è un intero finito compreso tra zero e duecentocinquantacinque. I canali ricostruiti r_q, g_q e b_q mostrano il colore che arriva davvero nel framebuffer dopo che quei bit sono spariti, che è l'anteprima onesta di cui un artista ha bisogno prima di chiudere una palette.

Dove un impacchettatore da RGB a RGB565 merita il proprio posto

Gli autori di strumenti richiamano lo stesso contratto da script di build per seminare intestazioni di palette, da test di proprietà che confrontano un nuovo driver con questo oracolo, e da pipeline di token di design che devono emettere insieme un hex CSS e una parola di firmware da un'unica fonte di verità. Lo abbini a un convertitore da RGB a hex quando il consumatore successivo è un foglio di stile, a un impacchettatore da RGB a intero decimale quando ha bisogno di una parola a ventiquattro bit, e ad altri strumenti di colore deterministici e gratuiti quando sta allestendo un piccolo laboratorio di igiene delle palette embedded. Gli autori di firmware incontrano questa mappatura quando una guida di marca elenca campioni RGB a otto bit e il driver del display vuole un colore uint16_t, quando un foglio di sprite viene convertito offline in un array C a 16 bit, o quando un log seriale stampa una parola impacchettata e la scrivania ha bisogno della costante hex corrispondente. Gli studenti la vedono nei corsi di sistemi embedded che presentano i framebuffer TFT, nei laboratori di programmazione di giochi rivolti a portatili a sedici bit e nei riscaldamenti da colloquio che chiedono lo schema di bit di RGB565. In questa pagina il lavoro avviene interamente nel Suo browser; tramite l'API ogni impacchettamento riuscito costa $0.002, la validazione fallita non viene addebitata e nulla viene conservato dopo la restituzione della risposta. Questa separazione — esplorazione interattiva gratuita e API identica a pagamento — corrisponde al resto del catalogo tier A di KIT e Le consente di passare da una demo al banco o da una diapositiva di lezione a una pipeline di firmware automatizzata senza cambiare il risultato impacchettato.

Leggi la documentazione completa del KIT →