Empaqueteur RVB vers RGB555
Regroupez une couleur RVB en un mot RGB555 sur 15 bits : l’orange 255, 128, 0 devient 32256, soit 0x7E00. Chaque canal garde ses cinq bits de poids fort, la disposition des modes haute couleur VGA et des anciens jeux PC. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Résistance (Ω)
- 255
- G
- 128
- B
- 0
- R5
- 31
- G5
- 16
- B5
- 0
- R quantifié
- 248
Le matériel graphique ancien stocke la couleur comme un mot RGB555 de quinze bits, et non comme trois canaux de huit bits. Cet empaqueteur RVB vers RGB555 prend des entiers rouge, vert et bleu de zéro à deux cent cinquante-cinq, tronque chaque canal à cinq bits en écartant les trois bits de poids faible, puis empaquette le résultat avec le rouge aux bits quatorze à dix, le vert aux bits neuf à cinq et le bleu aux bits quatre à zéro. Le bit de poids fort inutilisé reste à zéro, si bien que l'entier empaqueté se situe toujours entre zéro et trente-deux mille sept cent soixante-sept. Le moteur est entièrement déterministe : ni réseau, ni graine aléatoire, ni horloge murale.
Ce que signifie l'empaquetage RGB555 et comment le mot de quinze bits est construit
Le sRVB huit bits, le modèle qu'utilisent CSS et les outils de peinture modernes, accorde à chacun du rouge, du vert et du bleu deux cent cinquante-six niveaux distincts. Le high-color quinze bits, souvent nommé RGB555, ne conserve que trente-deux niveaux par canal. La conversion historique est une troncature, non un arrondi perceptuel : décalez chaque canal huit bits de trois bits vers la droite, ce qui équivaut à une division entière par huit en écartant le reste.
Le rouge pur deux cent cinquante-cinq devient trente et un, le gris moyen cent vingt-huit devient seize, et toute valeur de zéro à sept s'effondre à zéro. Ces trois champs de cinq bits sont ensuite empaquetés dans un entier non signé, rouge aux bits quatorze à dix, vert aux bits neuf à cinq, bleu aux bits quatre à zéro. Le bit quinze reste inutilisé et s'écrit toujours zéro, si bien que le mot empaqueté ne dépasse jamais trente-deux mille sept cent soixante-sept, soit l'hexadécimal 0x7FFF.
C'est la disposition RGB555 documentée par la couleur 15 bits de Windows, les modes VGA high-color et de nombreux moteurs PC — pas l'échange BGR555 de certaines consoles de poche, où le bleu occupe les cinq bits de données hauts.
Contrat d'entrée, règles de troncature et validation qui ne plafonne jamais
Les espaces extérieurs des canaux en chaîne sont retranchés. Une valeur n'est légale que si elle est un entier fini de zéro à deux cent cinquante-cinq inclus. Il n'y a ni plafonnement silencieux ni arrondi au niveau le plus proche : sept décalé de trois bits vers la droite vaut zéro, huit devient un, et deux cent cinquante-cinq devient trente et un.
Cette règle de seule troncature correspond au chemin matériel des DAC VGA high-color et d'innombrables convertisseurs de ressources qui écartent les trois bits de poids faible avant d'écrire un framebuffer quinze bits. Après validation, le moteur empaquette rgb555 comme le rouge cinq bits décalé de dix vers la gauche, disjonction bit à bit avec le vert cinq bits décalé de cinq vers la gauche, disjonction bit à bit avec le bleu cinq bits.
L'orange deux cent cinquante-cinq, cent vingt-huit, zéro devient donc trente et un, seize, zéro et s'empaquette en trente-deux mille deux cent cinquante-six, écrit 0x7E00. Le blanc deux cent cinquante-cinq sur chaque canal s'empaquette au maximum trente-deux mille sept cent soixante-sept. Le noir s'empaquette à zéro.
Où un empaqueteur RVB vers RGB555 se justifie, et ce qu'il coûte
Les chaînes d'outils rétro rencontrent cette correspondance lorsqu'un éditeur de palette doit émettre les mêmes mots quinze bits qu'un mode VGA high-color ou qu'un ancien moteur PC stockait en mémoire vidéo, lorsqu'un convertisseur de sprites écrit un blob binaire de palette, ou lorsqu'un test d'émulateur compare un framebuffer empaqueté à un vidage de référence. Les correcteurs de ROM et les pipelines de ressources s'en servent pour transformer des maquettes modernes huit bits en l'aspect grossier de trente-deux niveaux par canal du high-color 15 bits, sans dresser une bibliothèque graphique complète.
Les cours d'informatique l'utilisent comme exercice propre de décalage : les étudiants vérifient que deux cent cinquante-cinq décalé de trois bits vers la droite vaut trente et un et que le mot empaqueté du blanc est 0x7FFF. Les développeurs front-end qui livrent encore des replis pour formats historiques, ou qui documentent l'aspect d'un export de canevas après quantification à cinq bits, peuvent appeler le même contrat depuis un script.
Associez l'empaqueteur gratuit RVB vers RGB555 dans le navigateur à des convertisseurs hex ou TSL lorsque l'étape suivante est une feuille de style, et à l'empaqueteur d'entier RVB 24 bits lorsque vous avez besoin de huit bits par canal plutôt que cinq. Sur cette page, le travail s'exécute entièrement sur votre appareil.
Cas d’usage
Palettes VGA high-color et anciens moteurs PC
Convertissez des nuanciers maquette huit bits en mots RGB555 15 bits qu'un mode VGA high-color ou un moteur PC classique stockait en mémoire vidéo.
Enseigner les décalages et la quantification à cinq bits
Laissez les étudiants vérifier que chaque canal est tronqué par un décalage à droite de trois et empaqueté avec le rouge aux bits 14–10, sans écrire les décalages à la main.
Questions fréquentes
Comment empaqueter du RVB 8 bits en une valeur RGB555 ?
Le rgb555 de la réponse est le mot 15 bits ((r>>3)<<10) | ((g>>3)<<5) | (b>>3), aussi donné en hex et comme chaîne binaire 15 bits.
Comment chaque canal est-il tronqué à cinq bits ?
Le moteur écarte les trois bits de poids faible par un décalage à droite de trois (division entière par huit). Aucun arrondi : 7 devient 0, 8 devient 1, et 255 devient 31.
Quelle est la plage de l'entier RGB555 empaqueté ?
De zéro à 32767 (0x0000 à 0x7FFF). Le bit 15 est inutilisé et reste à zéro. Le blanc pur s'empaquette en 32767 ; le noir pur s'empaquette en 0.
Que se passe-t-il si un canal sort de 0–255 ?
Les canaux ne sont jamais plafonnés ni repliés, et une validation échouée n'est pas facturée.
L'empaqueteur RVB vers RGB555 est-il gratuit ?
L'outil du navigateur s'exécute gratuitement sur votre appareil.
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/rgb-rgb555 \
-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/color/rgb-rgb555", {
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/color/rgb-rgb555",
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/color/rgb-rgb555", 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/color/rgb-rgb555", 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
{
"r": 255,
"g": 128,
"b": 0
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_rgb555",
"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.
Limites
min_channel | 0 |
max_channel | 255 |
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
Concepteurs, auteurs d'émulateurs et chaînes d'outils de jeux rétro emploient cette correspondance lorsqu'une palette, un framebuffer ou un vidage BIOS attend la disposition historique high-color quinze bits des modes VGA, des jeux PC anciens et de nombreuses API graphiques. Les canaux hors de la plage légale de huit bits échouent avec invalid_input au lieu de boucler ou d'être plafonnés en silence. Utilisez-le gratuitement dans le navigateur pour les palettes et les contrôles de devoirs, ou appelez l'API à $0.002 par élément réussi lorsqu'un pipeline de compilation a besoin du même contrat.
Ce que signifie l'empaquetage RGB555 et comment le mot de quinze bits est construit
La réponse répète les r, g et b d'origine, expose les champs cinq bits comme r5, g5 et b5, reconstruit l'aspect quantifié huit bits comme quantized_r, quantized_g et quantized_b en décalant de trois positions vers la gauche, et publie l'entier empaqueté comme rgb555 avec une forme hex 0x, quatre chiffres hexadécimaux majuscules, une chaîne binaire de quinze caractères, un écho css_rgb de l'entrée, l'étiquette de méthode rgb_to_rgb555, la chaîne de formule, bits_per_channel égal à cinq et max égal à trente-deux mille sept cent soixante-sept. Des entrées identiques produisent toujours le même JSON, car le chemin est de l'arithmétique pure.
Contrat d'entrée, règles de troncature et validation qui ne plafonne jamais
Envoyez en POST un corps JSON avec trois entiers obligatoires : r pour le rouge, g pour le vert et b pour le bleu. Chaque champ peut arriver comme nombre JSON ou comme chaîne de chiffres ; les alias red et R majuscule, green et G majuscule, et blue et B majuscule sont acceptés afin que tableurs et formulaires typés réutilisent le même contrat. Champs manquants, chaînes vides, texte non numérique, Infinity, NaN, fractions telles que cent vingt-huit virgule cinq, négatifs et tout canal de deux cent cinquante-six ou plus échouent avec invalid_input qui nomme le champ et indique qu'il doit rester entre zéro et deux cent cinquante-cinq. Ces échecs ne sont pas facturés.
Où un empaqueteur RVB vers RGB555 se justifie, et ce qu'il coûte
Via l'API, chaque empaquetage réussi coûte $0.002 ; les échecs de validation ne consomment pas de solde, et rien n'est stocké après le retour de la réponse.
Cas d'intégration
Fixtures d'émulateur et convertisseurs de sprites
Empaquetez entrées de palette et pixels de framebuffer en entiers RGB555 déterministes afin que tests d'émulateur et convertisseurs de ressources puissent affirmer des vidages binaires.