RGB565-Farbpacker
Dieser RGB565-Farbpacker wandelt acht Bit breite Rot-, Grün- und Blaukanäle in das kompakte 16-Bit-Pixelformat für eingebettete Displays, Mikrocontroller, Bildressourcen und Framebuffer um.
Im Browser ausführen – kostenlos
Er decodiert auch ein RGB565-Wort zurück in skalierte Kanäle. Jede Umrechnung liefert den Dezimalwert, den aufgefüllten Hexadezimalwert, die Felder mit fünf, sechs und fünf Bit sowie das sichtbare Rücklaufergebnis. Eine strenge Prüfung erkennt Kanäle außerhalb des Bereichs und fehlerhafte Werte, bevor daraus unbemerkt eine andere Farbe wird.
Packen Sie drei 8-Bit-Kanäle in ein RGB565-Wort
Wählen Sie die Packoperation und geben Sie ganzzahlige Kanäle r, g und b von 0 bis einschließlich 255 an. Der Konverter reduziert Rot und Blau zunächst von acht auf fünf Bit und damit auf Werte von 0 bis 31. Grün wird auf sechs Bit beziehungsweise 0 bis 63 reduziert, da RGB565 dafür ein zusätzliches Bit reserviert. Jede Umrechnung nutzt proportionale Skalierung mit Rundung auf die nächste Ganzzahl. Dadurch werden 0 und 255 exakt auf die Endpunkte abgebildet, während Zwischenfarben die nächstgelegene verfügbare Stufe erhalten. Anschließend liegt Rot in den Bits 15 bis 11, Grün in den Bits 10 bis 5 und Blau in den Bits 4 bis 0. Eine OR-Verknüpfung verbindet die Felder zu einer vorzeichenlosen 16-Bit-Ganzzahl. Die Antwort enthält den Dezimalwert und einen einheitlich vierstelligen Hexwert für C-Konstanten, Binärcodierer, Displaytreiber, Tabellen und Testdaten. Separate Komponenten machen jeden Schritt nachvollziehbar, statt nur eine unerklärte Zahl auszugeben.
Verstehen Sie Quantisierung und Rücklaufergebnis
RGB565 kann nicht alle 24-Bit-RGB-Farben erhalten, weil es 16,777,216 mögliche Eingaben mit nur 65,536 Werten darstellt. Mehrere benachbarte Farben führen deshalb zum gleichen Wort, und beim Entpacken lassen sich verworfene niederwertige Informationen nicht wiederherstellen. Um diesen Verlust sichtbar zu machen, enthält die Packantwort ein Objekt mit der vom Wort dargestellten 8-Bit-Farbe. Der Decoder multipliziert fünf Bit breite Rot- und Blauwerte mit 255, teilt durch 31 und rundet; für Grün verwendet er 255 und 63. Diese proportionale Regel ist deterministisch, bildet beide Endpunkte exakt ab und lässt sich in JavaScript, C, Rust, Python und weiteren Umgebungen einfach nachbilden. Die zurückgegebenen Kanäle können wegen der erwarteten Quantisierung geringfügig von der Eingabe abweichen. Reduzierte Bitfelder, gepacktes Wort und erweiterte Kanäle helfen Ihnen gemeinsam beim Vergleich von Implementierungen, Erkennen einer falschen Byte-Reihenfolge, Prüfen von Farbkonstanten und Bewerten der Präzision für ein bestimmtes Display oder Bildobjekt.
Entpacken Sie vorhandene Werte ohne Formatfehler
Wählen Sie die Entpackoperation, wenn bereits ein RGB565-Wort aus Firmware, Framebuffer, Protokollmitschnitt oder Bilddatei vorliegt. Geben Sie value als Dezimalziffern von 0 bis 65535 oder hexadezimal mit dem Präfix 0x ein. Negative Werte, Brüche, Hexadezimalbuchstaben ohne Präfix, angehängte Zeichen und Zahlen außerhalb des vorzeichenlosen 16-Bit-Bereichs werden abgelehnt und nicht abgeschnitten. Die Ausgabe enthält die normalisierte Dezimalzahl, den aufgefüllten Hexwert, drei gespeicherte Felder und skalierte r-, g- und b-Kanäle. RGB565 legt die Bitbelegung fest, aber nicht die Byte-Reihenfolge. Je nach Gerät oder Format kann das höher- oder niederwertige Byte zuerst gespeichert sein; tauschen Sie die Bytes vorher, falls Ihre Quelle die Gegenrichtung nutzt. RGB565 unterscheidet sich außerdem von BGR565, bei dem Rot und Blau vertauscht sind. Dieses Werkzeug nutzt Rot oben und Blau unten. Einzelprüfungen laufen im Browser; für automatisierte Tests und Diagnosen kostet jede API-Anfrage $0.002.
Anwendungsfälle
Displaykonstanten erzeugen
Wandeln Sie RGB-Entwurfskanäle in aufgefüllte RGB565-Werte für Firmware, Treiber und Nachschlagetabellen um.
Framebuffer-Pixel prüfen
Decodieren Sie erfasste 16-Bit-Wörter und vergleichen Sie deren erweiterte Kanäle mit erwarteten Testfarben.
Sprachübergreifende Testdaten erstellen
Speichern Sie Eingaben, reduzierte Felder, gepackte Wörter und Rückkanäle für konsistente Geräte- und Anwendungstests.
Häufige Fragen
Wie werden 8-Bit-Kanäle reduziert?
Rot und Blau verwenden round(Kanal × 31 ÷ 255), Grün dagegen round(Kanal × 63 ÷ 255).
Warum kann die entpackte Farbe abweichen?
Das Packen entfernt niederwertige Informationen. Die Rückgabe ist die nächste durch das RGB565-Wort darstellbare Farbe.
Welche gepackten Formate sind zulässig?
Verwenden Sie Dezimalziffern von 0 bis 65535 oder eine Hexzeichenfolge mit 0x-Präfix wie 0xF800.
Vertauscht das Werkzeug die Bytes?
Nein. Es konvertiert das numerische RGB565-Wort; behandeln Sie die Byte-Reihenfolge beim Lesen oder Schreiben des Formats.
Was kostet eine API-Umrechnung?
Jede API-Anfrage kostet $0.002; die interaktive Umrechnung ist ebenfalls im Browser verfügbar.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"r": 255,
"g": 128,
"b": 0
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.rgb565_pack",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |