LAB-zu-Hex-Konverter
Helligkeit 53.2408 mit a bei 80.0925 und b bei 67.2032 ergibt #FF0000, reines Rot, und das Ergebnis meldet, dass die Farbe für den Bildschirm beschnitten wurde. Machen Sie aus Messwerten nutzbare Bildschirmfarben. Gratis in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- L
- 53,2408
- A
- 80,0925
- B
- 67,2032
- X
- 41,245661
- Y
- 21,267295
- Z
- 1,933391
- Widerstand (Ω)
- 255
Dieser LAB-zu-Hex-Konverter wandelt CIE-L*a*b*-Koordinaten über einen transparenten D65-Rechenweg in eine sechsstellige sRGB-Farbe um. Er prüft L*, a* und b*, rekonstruiert CIE XYZ, überführt XYZ in lineares sRGB, wendet die standardisierte sRGB-Übertragungsfunktion an und rundet die Kanäle auf Bytes. Farben außerhalb des darstellbaren sRGB-Gamuts werden sicher begrenzt und in der Antwort gekennzeichnet, statt ungültige Kanäle zu erzeugen.
Welche Eingaben und Ausgaben der Konverter bietet
Geben Sie drei numerische Koordinaten ein: l für die CIE-L*-Helligkeit, a für die Grün-Rot-Achse und b für die Blau-Gelb-Achse. Die Helligkeit muss zwischen null und einhundert liegen; jede chromatische Koordinate darf Werte von minus zweihundert bis zweihundert annehmen. Diese Grenzen decken praktische Lab-Werte ab und erkennen vertauschte Felder, Unendlichkeiten, fehlende Werte und offensichtlich beschädigte Datensätze vor der Konvertierung.
Die Antwort wiederholt die geprüften Koordinaten und liefert X, Y und Z als Zwischenwerte auf der üblichen Skala von null bis einhundert.
Wie aus Lab zunächst XYZ und dann eine Hex-Farbe wird
Die Berechnung verwendet den standardmäßigen D65-Referenzweißpunkt von sRGB. Zunächst werden L*, a* und b* in die drei üblicherweise f-x, f-y und f-z genannten Pivot-Terme umgestellt. Jeder Term durchläuft die inverse CIE-Lab-Pivotfunktion: Werte über sechs Neunundzwanzigsteln werden kubiert, kleinere Werte verwenden den passenden linearen Zweig.
Die Multiplikation mit dem D65-Referenzweiß rekonstruiert CIE XYZ. Anschließend wandelt eine feste Drei-mal-drei-Matrix XYZ in lineares sRGB um. Eine Komponente darf dabei negativ oder größer als eins sein, weil Lab Farben außerhalb des sRGB-Anzeigegamuts beschreibt.
Der Konverter erfasst diesen Zustand, bevor er Werte verändert. Danach erhält jede lineare Komponente die offizielle abschnittsweise sRGB-Kompandierungsfunktion. Die codierten Werte werden auf null bis eins begrenzt, mit zweihundertfünfundfünfzig multipliziert und auf die nächste Ganzzahl gerundet.
Zum Schluss wird jedes Byte als genau zwei hexadezimale Großbuchstaben-Ziffern formatiert und hinter einem Doppelkreuz zusammengefügt. Anzeigekanäle entstehen somit nicht aus bereits gerundeten XYZ-Feldern, wodurch unnötige Genauigkeitsverluste nahe einer Byte-Schwelle vermieden werden.
Gamut-Angaben und deterministische Ergebnisse richtig nutzen
Lab umfasst wesentlich mehr theoretische Farben, als ein typischer sRGB-Bildschirm darstellen kann. Deshalb benötigt ein Konverter eine eindeutige Regel für unmögliche Ergebnisse. Diese Fähigkeit nutzt Kanal-Clipping als einfache, reproduzierbare Richtlinie: Negative lineare Komponenten werden null, Komponenten über eins werden eins.
Behalten Sie den erzeugten Hexwert, wenn Sie eine konkrete CSS-kompatible Ersatzfarbe benötigen. Bewahren Sie jedoch die ursprünglichen Lab-Koordinaten auf, wenn Farbtreue zählt oder ein späterer Wide-Gamut-Ablauf die Quelle besser verarbeiten könnte. In der Qualitätssicherung sollte true eine Prüfung oder ein erneutes Mapping mit einer speziellen Gamut-Mapping-Strategie auslösen.
Auch die Deterministik ist beabsichtigt. Die Implementierung verwendet ausschließlich feste Arithmetik und Formatierung: Sie liest keine Uhrzeit, nutzt keinen Zufall, ruft keinen entfernten Dienst auf, verwendet kein installiertes Farbprofil und hängt nicht vom Browser-Rendering ab.
Anwendungsfälle
Design-Tokens veröffentlichen
Wandeln Sie gemessene oder definierte Lab-Markenfarben in stabile sechsstellige Hexwerte für CSS-Variablen, Dokumentation und Anwendungsthemen um.
Grenzen des sRGB-Gamuts prüfen
Erkennen Sie Lab-Proben, deren Kanäle vor der Darstellung auf üblichen sRGB-Bildschirmen begrenzt werden müssen.
Häufige Fragen
Welcher Weißpunkt wird verwendet?
Die Umrechnung nutzt D65 mit Xn 0.95047, Yn 1.00000 und Zn 1.08883 entsprechend dem standardmäßigen sRGB-Konvertierungsweg.
Hat der ausgegebene Hexwert immer sechs Stellen?
Ja. Jedes begrenzte RGB-Byte erscheint als zwei hexadezimale Großbuchstaben-Ziffern einschließlich führender Nullen hinter einem Doppelkreuz.
Erhält dieser Konverter Transparenz?
Nein. Eine CIE-Lab-Eingabe besitzt keine Alpha-Koordinate; deshalb ist die Ausgabe eine undurchsichtige sechsstellige Hex-Farbe und kein achtstelliger Wert.
Was passiert, wenn eine LAB-Farbe auf dem Bildschirm nicht darstellbar ist?
Jeder Kanal außerhalb des darstellbaren Bereichs wird an die nächste Grenze gesetzt, Sie erhalten also immer einen gültigen Hexwert. Das Ergebnis wird als außerhalb markiert; extreme Farben können sich in Farbton oder Intensität leicht verschieben.
Welcher Hexwert entspricht Helligkeit 53.2408 mit a bei 80.0925 und b bei 67.2032?
Es ist #FF0000, reines Rot, mit Rot bei 255 sowie Grün und Blau bei 0. Der exakte Wert liegt knapp außerhalb des Bildschirmbereichs und ist deshalb als beschnitten markiert.
Verwandte Tools
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/color/lab-hex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"l":53.2408,"a":80.0925,"b":67.2032}'const res = await fetch("https://api.kit.forhosting.com/color/lab-hex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"l": 53.2408,
"a": 80.0925,
"b": 67.2032
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/lab-hex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"l": 53.2408,
"a": 80.0925,
"b": 67.2032
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/lab-hex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"l":53.2408,"a":80.0925,"b":67.2032}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"l":53.2408,"a":80.0925,"b":67.2032}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/lab-hex", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"l": 53.2408,
"a": 80.0925,
"b": 67.2032
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.lab_hex",
"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. |
Technische Hinweise
Dieselbe deterministische Berechnung läuft im Browser und per API für $0.002 je erfolgreicher Anfrage – ohne Netzwerkabfrage, Zufallswert oder Zeitabhängigkeit.
Welche Eingaben und Ausgaben der Konverter bietet
Zusätzlich erhalten Sie ganzzahlige rote, grüne und blaue Kanäle, eine sechsstellige Hex-Zeichenfolge in Großbuchstaben mit vorangestelltem Doppelkreuz und den booleschen Wert out_of_gamut. false bedeutet, dass die unbegrenzte Umrechnung innerhalb von sRGB lag. true zeigt an, dass mindestens eine lineare sRGB-Komponente kleiner als null oder größer als eins war und auf die nächste darstellbare Grenze gesetzt wurde. Das Hex-Ergebnis bleibt auch dann gültig. Validierungsfehler verwenden invalid_input, statt unbemerkt Standardwerte einzusetzen.
Wie aus Lab zunächst XYZ und dann eine Hex-Farbe wird
Die XYZ-Zwischenwerte werden für lesbares, stabiles JSON auf sechs Dezimalstellen gerundet; der RGB-Rechenweg behält jedoch die volle Gleitkommagenauigkeit.
Gamut-Angaben und deterministische Ergebnisse richtig nutzen
Bei extremen Farben kann Clipping Farbton oder Chroma verändern; das Kennzeichen out_of_gamut liefert daher wichtigen Kontext und sollte nicht ignoriert werden. Identische JSON-Eingaben erzeugen daher identische Ausgaben. Das ist praktisch für Snapshot-Tests, Build-Pipelines, Datenbanknormalisierung und gemeinsame Design-System-Werkzeuge. Die interaktive Konvertierung ist im Browser kostenlos; per API kostet sie $0.002 je erfolgreicher Anfrage und folgt exakt demselben mathematischen Ablauf.
Integrationsbeispiele
Deterministische Test-Fixtures erstellen
Erzeugen Sie reproduzierbare XYZ-, RGB- und Hex-Erwartungswerte für Farbbibliotheken, Importer und Datenvalidierungs-Pipelines.
Technische Fragen
Was kostet die Konvertierung von LAB in Hex?
Sie läuft in Ihrem Browser kostenlos. Per API kostet jede erfolgreiche Anfrage $0.002; ungültige Eingaben werden vor der Ausgabe abgelehnt.
Warum enthält das Ergebnis out_of_gamut?
Lab kann Farben außerhalb von sRGB beschreiben. Der Wert ist true, wenn ein unbegrenzter linearer RGB-Kanal unter null oder über eins begrenzt werden musste.