RGB-zu-XYZ-Umrechner
Erhalten Sie die CIE-1931-XYZ-Werte einer sRGB-Farbe: Orange mit 255, 128, 0 ergibt X 48.96429558, Y 36.70460115 und Z 4.50627447 auf der Skala von 0 bis 100. Eine solide Grundlage für Lab-Umrechnungen und Profilvergleiche. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Widerstand (Ω)
- 255
- G
- 128
- B
- 0
- X
- 48,96429558
- Y
- 36,70460115
- Z
- 4,50627447
- Weißpunkt
- D65
Dieser RGB-zu-XYZ-Umrechner wandelt die Werte der roten, grünen und blauen sRGB-Kanäle in CIE-1931-XYZ-Tristimuluskoordinaten um. Er prüft jeden Kanal, entfernt die nichtlineare sRGB-Übertragungskennlinie und wendet die standardisierte D65-Umrechnungsmatrix für den 2-Grad-Beobachter an. Die Werte X, Y und Z werden auf der üblichen Skala von 0–100 ausgegeben und können direkt für farbwissenschaftliche Berechnungen, Profilvergleiche und Umrechnungen in Farbräume wie CIE L*a*b* verwendet werden.
Geben Sie eine gültige sRGB-Farbe ein
Geben Sie den roten, grünen und blauen Kanal als ganze Zahlen von 0 bis 255 an. Dies sind die üblichen sRGB-Kanalwerte, die für rgb()-Farben in CSS und für die meisten bildschirmorientierten Bilddaten verwendet werden. Alle drei Felder sind erforderlich, da ein XYZ-Ergebnis den gemeinsamen Lichtbeitrag der vollständigen Farbe beschreibt.
Der Umrechner weist fehlende Kanäle, Dezimalzahlen, nicht numerische Werte und Zahlen außerhalb des erlaubten Bereichs zurück, statt sie unbemerkt zu begrenzen oder zu erraten. Dieses strikte Verhalten ist in automatisierten Abläufen hilfreich: Ungültige Quelldaten erzeugen einen eindeutigen Eingabefehler und keine plausibel wirkende, aber falsche Koordinate. Reines Rot geben Sie beispielsweise als r 255, g 0 und b 0 ein; für ein neutrales Mittelgrau verwenden Sie bei allen drei Kanälen dieselbe Zahl.
Die Eingabe wird ausschließlich als Standard-sRGB interpretiert. Werte aus Adobe RGB, Display P3, ProPhoto RGB, dem nativen RGB einer Kamera oder einem unbekannten eingebetteten Profil benötigen die Matrix und Übertragungskennlinie des jeweiligen Farbraums und dürfen nicht wie sRGB eingegeben werden.
Verstehen Sie Gammalinearisierung und Matrix
Gespeicherte sRGB-Werte sind nicht linear: Sie werden mit einer Übertragungskennlinie codiert, die auf Anzeigesysteme und eine effiziente visuelle Genauigkeit abgestimmt ist. Eine Matrixmultiplikation muss mit linearen Lichtgrößen arbeiten. Deshalb teilt der Umrechner zunächst jeden Kanal durch 255 und wendet die inverse sRGB-Kompandierungsfunktion an.
Niedrige Kanalwerte verwenden den linearen Zweig, höhere Werte den für sRGB definierten Potenzzweig 2.4. Anschließend werden die linearen roten, grünen und blauen Komponenten mit der standardisierten 3-mal-3-Matrix von sRGB nach XYZ multipliziert. Diese Matrix beschreibt die sRGB-Primärfarben relativ zum CIE-1931-Standardbeobachter mit 2 Grad und zum D65-Referenzweiß.
X steht grob für eine rotgewichtete Reizkomponente, Y entspricht der relativen Leuchtdichte und Z ist stark in Richtung Blau gewichtet; dennoch ist keine dieser Größen lediglich ein umbenannter RGB-Kanal. Die Gammaentfernung muss unbedingt von der Matrixumrechnung getrennt bleiben. Wird die Matrix direkt auf codierte Werte von 0–255 angewendet, entstehen systematisch falsche Koordinaten, besonders bei Mitteltönen und dunklen Farben.
Lesen und verwenden Sie das XYZ-Ergebnis
Die Antwort enthält X, Y und Z auf einer Skala von 0–100 sowie eindeutige Angaben zu Weißpunkt, Beobachter und Skala. Nachgelagerter Code muss die Konvention daher nicht erraten. Für das sRGB-Referenzweiß betragen die Werte ungefähr X 95.047, Y 100 und Z 108.883.
Z darf folglich auch dann rechtmäßig über 100 liegen, wenn die Skala als 0–100 bezeichnet wird. Die Bezeichnung meint die übliche Normierung, bei der Y des Referenzweißes 100 entspricht, und keine harte Obergrenze für jede Komponente. XYZ dient häufig als verbindender Zwischenfarbraum.
Sie können die Werte normieren und in CIE L*a*b* weiterrechnen, Chromatizitätskoordinaten bestimmen, Weißpunkte vergleichen oder einen Farbmanagement-Ablauf speisen, der ausdrücklich D65-XYZ-Daten erwartet. Prüfen Sie beim Vergleich mit einem anderen Rechner oder einer Bibliothek das RGB-Profil, den Beobachter, das Referenzweiß, die Ausgabeskala, die Matrixkoeffizienten und die Rundung.
Anwendungsfälle
Eine sRGB-Farbe für die LAB-Umrechnung vorbereiten
Nutzen Sie D65-XYZ als Verbindungsstufe, bevor Sie die CIE-L*a*b*-Transformation für das Referenzweiß anwenden.
Eine Farbbibliothek überprüfen
Vergleichen Sie die deterministische Matrixausgabe bekannter sRGB-Proben bei Entwicklung und Test von Farbverarbeitungscode.
Farbmetrische Koordinaten berechnen
Wandeln Sie Webfarbkanäle in Tristimuluswerte für Analysen von Leuchtdichte, Chromatizität und Profilen um.
Häufige Fragen
Was kostet die Umrechnung?
Der Browser-Umrechner kann auf dieser Seite kostenlos genutzt werden.
Welchen RGB-Farbraum verwendet dieser Umrechner?
Er nutzt die Standard-sRGB-Primärfarben und die inverse sRGB-Übertragungskennlinie. Adobe RGB, Display P3 und geräteeigene RGB-Werte werden nicht interpretiert.
Welche Weißpunkte und Beobachter werden verwendet?
Die Matrix bezieht sich auf den Weißpunkt D65 und den CIE-1931-Standardbeobachter mit 2 Grad.
Warum darf Z größer als 100 sein?
Die übliche Skala normiert Y des Referenzweißes auf 100. Bei D65 liegt dessen Z-Koordinate bei ungefähr 108.883; Werte über 100 sind daher gültig.
Sind dezimale oder außerhalb liegende RGB-Kanäle erlaubt?
Nein. Jeder Kanal muss eine ganze Zahl von 0 bis 255 sein.
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/rgb-xyz \
-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-xyz", {
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-xyz",
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-xyz", 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-xyz", 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": "color.rgb_xyz",
"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.
Limits
min_channel | 0 |
max_channel | 255 |
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
Browser und API führen dieselbe deterministische Berechnung aus.
Lesen und verwenden Sie das XYZ-Ergebnis
Die Ergebnisse werden auf acht Dezimalstellen gerundet, damit das JSON stabil bleibt und zugleich mehr Genauigkeit erhalten wird, als die meisten Oberflächen und Berichte benötigen.