Décompresseur RGB565 vers RGB
Lisez une valeur RGB565 sur 16 bits comme une couleur ordinaire : 0xF800, soit 63488, correspond au rouge pur, 255, 0, 0 et #FF0000. Les cinq bits de rouge, six de vert et cinq de bleu sont étendus à toute la plage, niveaux d’origine à l’appui. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Valeur
- 0xF800
- Valeur
- 63 488
- RGB565 (hex)
- 0xF800
- Red5
- 31
- Vert (6 bits)
- 0
Ce décompresseur RGB565 vers RGB convertit une couleur compacte sur 16 bits en canaux rouge, vert et bleu classiques sur 8 bits. Il vérifie que l’entrée est un entier compris dans la plage non signée sur 16 bits, sépare les cinq bits rouges, les six bits verts et les cinq bits bleus, puis met chaque canal à l’échelle de façon déterministe entre 0 et 255. Vous pouvez saisir une valeur décimale ou hexadécimale précédée de 0x et recevoir la valeur compacte d’origine, ses champs binaires, une chaîne RGB et une couleur hexadécimale à six chiffres.
Comprenez l’organisation du format RGB565
RGB565 enregistre une couleur sur seize bits au lieu des vingt-quatre bits du RGB classique à 8 bits. Les cinq bits de poids fort représentent le rouge, les six bits centraux le vert et les cinq bits de poids faible le bleu. Le vert bénéficie d’un bit supplémentaire, car la vision humaine distingue particulièrement bien les variations dans cette partie du spectre.
Pour décompresser la valeur, cet outil décale l’entier et lui applique des masques afin d’obtenir un rouge de 0 à 31, un vert de 0 à 63 et un bleu de 0 à 31. Il affiche ensuite ces composantes à profondeur réduite avec leurs équivalents étendus. Le résultat convient aux développeurs qui veulent une couleur directement affichable comme aux ingénieurs qui souhaitent examiner les champs exacts stockés dans un micrologiciel, un framebuffer embarqué, une ressource binaire ou un protocole matériel.
La forme hexadécimale sur quatre chiffres conserve systématiquement les zéros initiaux, ce qui simplifie les comparaisons.
Découvrez la conversion des canaux vers 8 bits
Un canal à profondeur réduite ne contient pas assez d’informations pour restituer exactement l’échantillon d’origine sur 8 bits. La décompression fournit donc nécessairement une approximation. Ce convertisseur applique une mise à l’échelle proportionnelle explicite et arrondit à l’entier le plus proche.
Le rouge et le bleu sont multipliés par 255, divisés par 31, puis arrondis ; le vert est multiplié par 255, divisé par 63, puis arrondi. Les extrêmes correspondent ainsi exactement : zéro reste zéro et la composante maximale devient 255. Les valeurs intermédiaires couvrent toute la plage sur 8 bits sans hasard ni dépendance à l’environnement.
Cette règle se reproduit facilement en JavaScript, C, Rust, Python ou dans un tableur, tandis que les champs de sortie permettent d’en contrôler chaque étape. Certains systèmes répètent les bits, avec un résultat proche mais pas toujours identique. Ici, la règle proportionnelle est fixe et documentée pour garantir des tests comparables.
Saisissez une valeur valide et exploitez le résultat
Saisissez une seule valeur RGB565 non signée en chiffres décimaux, comme 63488, ou en hexadécimal avec le préfixe obligatoire 0x, comme 0xF800. La plage acceptée va de 0 à 65535 inclus, puisqu’aucune valeur supérieure ne tient sur seize bits. Les nombres négatifs, fractions, lettres hexadécimales sans préfixe, caractères supplémentaires, tableaux et objets non conformes sont refusés plutôt que partiellement interprétés.
Ce contrôle strict empêche une valeur telle que 65536 de revenir au noir par débordement et de masquer une erreur en amont. La sortie comprend l’entier décimal normalisé, le RGB565 hexadécimal complété, les composantes 5/6/5 d’origine, les valeurs r, g et b mises à l’échelle, une chaîne rgb() et un code RGB hexadécimal à six chiffres. Vous pouvez injecter les canaux dans du code graphique, comparer le code durant un débogage ou consigner les deux représentations.
Cas d’usage
Examiner les couleurs d’un écran embarqué
Convertissez les constantes d’un micrologiciel ou d’un framebuffer en RGB tout en conservant les champs 5/6/5 d’origine.
Décoder des ressources graphiques binaires
Décompressez des mots de pixel sur 16 bits en canaux sur 8 bits pour le diagnostic, l’aperçu ou une conversion déterministe.
Questions fréquentes
Quels formats d’entrée sont acceptés ?
Utilisez des chiffres décimaux de 0 à 65535 ou une valeur hexadécimale avec le préfixe 0x, par exemple 63488 ou 0xF800.
Pourquoi le vert utilise-t-il six bits ?
RGB565 affecte six bits au vert et cinq au rouge et au bleu, offrant une gradation du vert plus fine dans un mot de 16 bits.
La couleur d’origine sur 8 bits peut-elle être retrouvée exactement ?
Non. La compression a supprimé des informations de poids faible. Les canaux renvoyés sont des approximations déterministes réparties sur toute la plage de 0 à 255.
Comment les canaux sont-ils mis à l’échelle ?
Le rouge et le bleu utilisent round(composante × 255 ÷ 31) ; le vert utilise round(composante × 255 ÷ 63).
Que se passe-t-il si je saisis 65536 ?
La valeur est refusée. Une couleur RGB565 doit tenir sur seize bits, la plage acceptée va donc de 0 à 65535 ; un nombre plus grand n’est pas ramené au noir, ce qui masquerait une erreur en amont.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/color/rgb565-rgb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"0xF800"}'const res = await fetch("https://api.kit.forhosting.com/color/rgb565-rgb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "0xF800"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb565-rgb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "0xF800"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb565-rgb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"0xF800"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"0xF800"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb565-rgb", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"value": "0xF800"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb565_rgb",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Saisissez une valeur valide et exploitez le résultat
Chaque requête automatisée via l’API coûte $0.002.
Cas d'intégration
Créer des fixtures multilangages
Produisez des valeurs compactes et étendues explicites afin de comparer les implémentations RGB565 des applications, appareils et tests.
Questions techniques
Que se passe-t-il si la valeur est hors plage ?
La requête renvoie une erreur invalid_input sans débordement, troncature ni interprétation des bits supplémentaires.
Quel est le prix d’une conversion par API ?
Chaque requête API coûte $0.002 ; vous pouvez aussi lancer la conversion de manière interactive dans votre navigateur.