Bild-Farbtemperatur anpassen
Dieser Rechner wandelt die mittleren Rot-, Grün- und Blauwerte eines Bildes sowie eine Kelvin-Verschiebung in drei Kanalmultiplikatoren um.
Im Browser ausführen – kostenlos
Er schätzt die korrelierte Farbtemperatur, wendet die gewünschte wärmere oder kühlere Änderung an und liefert normierte RGB-Verstärkungen. Sie können das Ergebnis in einer linearen Farbverarbeitung für einen reproduzierbaren Weißabgleich verwenden, ohne das Bild hochzuladen. Die Berechnung ist deterministisch; eine API-Anfrage kostet $0.002.
Bereiten Sie einen repräsentativen RGB-Mittelwert vor
Ermitteln Sie zunächst für jeden 8-Bit-sRGB-Kanal den arithmetischen Mittelwert der Pixel, die für die Korrektur maßgeblich sein sollen. Geben Sie diese Werte als avg_r, avg_g und avg_b auf der Skala von 0 bis 255 ein. Ein Mittelwert des gesamten Bildes eignet sich für gleichmäßig beleuchtete Fotos, Produktserien, Vorschaubilder und automatisierte Ansichten. Bei einem stark farbigen Motiv kann jedoch der Mittelwert eines neutralen Bereichs die Beleuchtung zuverlässiger beschreiben. Eine rote Wand oder ein blauer Ozean kann den Gesamtmittelwert beherrschen, obwohl der Kamera-Weißabgleich bereits stimmt. Der Rechner untersucht keine Pixel, erkennt keine neutralen Gegenstände und trennt Beleuchtung nicht von Motivfarbe; er verwendet genau Ihre Zusammenfassung. Ein vollständig schwarzer Mittelwert wird abgelehnt, weil er keine Chromatizität für eine Temperaturschätzung enthält. Auch nicht endliche Zahlen und Werte außerhalb des 8-Bit-Bereichs sind ungültig. Verwenden Sie in einer Serie stets dieselbe Stichprobenmethode, damit die Korrekturen vergleichbar bleiben.
Wählen Sie die Kelvin-Verschiebung und verstehen Sie das Modell
Geben Sie shift_kelvin als relative Änderung und nicht als absoluten Zielwert ein. Ein positiver Wert erhöht die geschätzte Temperatur und bewirkt eine kühlere Korrektur; ein negativer Wert senkt sie und wirkt wärmer. Zulässig sind Verschiebungen von -10,000 bis 10,000 Kelvin, wobei das Ergebnis zwischen 1,000 und 40,000 Kelvin liegen muss. Die Berechnung linearisiert zuerst die mittleren sRGB-Kanäle, überführt sie in CIE-XYZ-Chromatizität und schätzt mit McCamys kubischer Näherung die korrelierte Farbtemperatur. Anschließend wertet sie deterministische RGB-Schwarzkörperkurven für Ausgangs- und Zieltemperatur aus. Das Verhältnis der Weißpunkte ergibt Kanalverstärkungen, die so normiert werden, dass Grün eins beträgt. Dies ist eine technische Näherung und keine Spektralmessung. Die korrelierte Farbtemperatur ist nahe der Planckschen Kurve am aussagekräftigsten; stark gesättigte Mittelwerte liefern daher nur eine grobe Schätzung. Methode und ausgegebene Temperaturen dokumentieren diese Annahme nachvollziehbar.
Wenden Sie die Multiplikatoren bildschonend an
Wenden Sie red_multiplier, green_multiplier und blue_multiplier auf RGB-Werte im linearen Licht an, nicht unmittelbar auf gammakodierte 8-Bit-Kanalwerte. Ein verlässlicher Ablauf dekodiert sRGB in lineares Licht, multipliziert jeden Kanal mit seiner Verstärkung, behandelt Werte oberhalb des Anzeigebereichs durch Belichtung oder Tonwertabbildung und kodiert anschließend wieder in sRGB. Eine direkte Byte-Multiplikation kann bei kleinen Änderungen plausibel aussehen, erhält aber nicht die beabsichtigte Beziehung zwischen Licht und gespeichertem Wert. Grün ist auf eins normiert; das Ergebnis beschreibt deshalb die Farbbalance und keine allgemeine Belichtungsänderung. Rot oder Blau können größer als eins werden und helle Bereiche beschneiden. Verarbeiten Sie deshalb vor dem Export mit Gleitkommazahlen oder ausreichender Bittiefe. Prüfen Sie repräsentative Bilder, bevor Sie eine große Sammlung bearbeiten, insbesondere bei farbigen Szenen. Die API kostet $0.002 je Anfrage; der Browser-Rechner führt dieselbe deterministische Rechnung lokal aus.
Anwendungsfälle
Produktfotos einer Serie angleichen
Berechnen Sie mit derselben Stichprobenmethode reproduzierbare Verstärkungen vor dem Katalogexport.
Einen Weißabgleich-Regler entwickeln
Wandeln Sie die Bewegung eines Kelvin-Reglers in konkrete RGB-Multiplikatoren für einen Editor um.
Reproduzierbare Korrekturen dokumentieren
Speichern Sie geschätzte und Zieltemperatur samt Verstärkungen in einer automatisierten Medienverarbeitung.
Häufige Fragen
Was bewirkt eine positive Kelvin-Verschiebung?
Sie erhöht die geschätzte Zieltemperatur und erzeugt eine kühlere Korrektur mit relativ mehr Blau und weniger Rot.
Welcher Verschiebungsbereich wird unterstützt?
Die Änderung muss zwischen -10,000 und 10,000 Kelvin und das Ergebnis zwischen 1,000 und 40,000 Kelvin liegen.
Warum ist der grüne Multiplikator immer eins?
Die Verstärkungen werden auf Grün normiert, damit sie die Farbbalance unabhängig von einer Belichtungskorrektur darstellen.
Soll ich 8-Bit-RGB-Werte direkt multiplizieren?
Nein. Dekodieren Sie sRGB in lineares Licht, wenden Sie die Verstärkungen an, behandeln Sie Lichter und kodieren Sie erneut.
Wie genau ist die geschätzte Temperatur?
Sie ist eine Näherung aus der mittleren Chromatizität und bei neutraler Beleuchtung zuverlässiger als bei stark gesättigten Motiven.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Die Webversion führt dieselbe deterministische Berechnung kostenlos lokal aus.
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/image/color-temperature-adjust \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"avg_r":142,"avg_g":128,"avg_b":110,"shift_kelvin":1200}'const res = await fetch("https://api.kit.forhosting.com/image/color-temperature-adjust", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"avg_r": 142,
"avg_g": 128,
"avg_b": 110,
"shift_kelvin": 1200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/color-temperature-adjust",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"avg_r": 142,
"avg_g": 128,
"avg_b": 110,
"shift_kelvin": 1200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/color-temperature-adjust", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"avg_r":142,"avg_g":128,"avg_b":110,"shift_kelvin":1200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"avg_r":142,"avg_g":128,"avg_b":110,"shift_kelvin":1200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/color-temperature-adjust", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"avg_r": 142,
"avg_g": 128,
"avg_b": 110,
"shift_kelvin": 1200
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.color_temperature_adjust",
"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_shift_kelvin | -10000 |
max_shift_kelvin | 10000 |
min_temperature_kelvin | 1000 |
max_temperature_kelvin | 40000 |
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. |