EXIF-Ausrichtung korrigieren
Erhalten Sie die genaue Korrektur für jeden EXIF-Ausrichtungswert von 1 bis 8: Ausrichtung 6 verlangt eine Drehung um 90 Grad im Uhrzeigersinn ohne Spiegelung, und die gespiegelten Werte bekommen zusätzlich die richtige Spiegelung. 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
- Ausrichtung
- 6
- Drehung (Grad)
- 90
- Reihenfolge der Operationen
- flip_then_rotate
Das EXIF-Tag für die Ausrichtung legt fest, wie eine Software gespeicherte Pixel transformieren muss, damit ein Bild aufrecht erscheint. Diese Funktion wandelt jeden gültigen Wert von 1 bis 8 in eine direkt umsetzbare Anweisung um: Drehung im Uhrzeigersinn, horizontale oder vertikale Spiegelung und Reihenfolge der Schritte. Sie berücksichtigt normale Kameradrehungen ebenso wie gespiegelte Fälle, die häufig falsch implementiert werden. Sie können das Ergebnis in Bildpipelines, Thumbnail-Diensten, Upload-Prüfungen oder Werkzeugen zur Metadatenanalyse einsetzen, ohne eine eigene Zuordnungstabelle pflegen zu müssen.
Warum ein aufrechtes Foto seitlich gespeicherte Pixel haben kann
Viele Kameras und Telefone ordnen beim Drehen des Geräts nicht jeden Pixel neu an. Stattdessen speichern sie das erfasste Raster in einer für den Sensor günstigen Lage und schreiben ein EXIF-Ausrichtungstag, das dem Betrachter die richtige Darstellung vorgibt. Software, die dieses Tag beachtet, zeigt das Foto aufrecht; andere Programme können dieselbe Datei seitlich, auf dem Kopf oder gespiegelt darstellen.
Das Tag kennt acht Werte und nicht nur vier Drehwinkel. Die Werte 1, 3, 6 und 8 beschreiben die normale Lage, eine halbe Drehung und Vierteldrehungen. Die Werte 2, 4, 5 und 7 enthalten eine Spiegelung.
Eine Behandlung als reine Drehung liefert deshalb bei manchen Scannern, Frontkameras und bearbeiteten Dateien falsche Ergebnisse. Diese Funktion nimmt den aus den Metadaten gelesenen Zahlenwert entgegen und gibt die genaue Korrektur zurück. Sie dekodiert kein Bild und verändert keine Pixel, sondern liefert eine zuverlässige Transformationsanweisung für Ihre Bildverarbeitung.
So wenden Sie die ausgegebene Transformation an
Übergeben Sie im Feld orientation eine Ganzzahl. Bei den Ausrichtungen 5 und 7 ist diese Reihenfolge entscheidend, weil Spiegelung und Drehung nicht vertauschbar sind. Die umgekehrte Abfolge kann eine andere gespiegelte Lage erzeugen.
Die kanonische Zuordnung stellt Ausrichtung 4 als horizontale Spiegelung mit anschließender Drehung um 180 Grad dar, was geometrisch einer vertikalen Spiegelung entspricht. Eine einheitliche Spiegelachse vereinfacht nachgelagerten Code, während das explizite vertikale Feld die Antwortstruktur stabil hält. Ausrichtung 1 erfordert keine Korrektur.
Werte außerhalb von 1 bis 8, Brüche, Zahlen als Text, fehlende Felder und andere Typen führen zu einem Fehler für ungültige Eingaben.
Die richtige Stelle in Ihrer Verarbeitungspipeline
Verwenden Sie diese Berechnung unmittelbar nachdem ein EXIF-Parser das Tag Orientation gelesen hat und bevor Sie skalieren, zuschneiden, OCR ausführen, Gesichter erkennen oder Thumbnails erzeugen. Durch frühe Normalisierung beziehen sich spätere Koordinaten auf die aufrechte Ansicht. So vermeiden Sie Ausschnitte an der falschen Kante oder Texterkennung auf seitlichen Zeilen.
Wenn Ihr Decoder die EXIF-Ausrichtung bereits automatisch anwendet, dürfen Sie die Transformation nicht ein zweites Mal ausführen. Deaktivieren Sie entweder die Automatik oder nutzen Sie die Antwort nur zur Prüfung und Planung. Nach der physischen Pixeltransformation sollten Pipelines üblicherweise Orientation 1 setzen oder das alte Tag entfernen, da ein konformer Betrachter die Korrektur sonst erneut anwenden könnte.
Die Funktion arbeitet deterministisch und verwendet weder Bilddaten noch Netzwerkzugriffe oder gerätespezifische Heuristiken. Dasselbe Tag erzeugt stets dieselbe Anweisung und eignet sich dadurch auch zur Prüfung von Bibliotheken mit seltenen gespiegelten Testdateien.
Anwendungsfälle
Hochgeladene Fotos normalisieren
Wandeln Sie das Orientation-Tag jedes Uploads vor der Thumbnail-Erstellung um, damit alle abgeleiteten Dateien tatsächlich aufrechte Pixel enthalten.
Scans für OCR vorbereiten
Korrigieren Sie gedrehte oder gespiegelte Pixel, bevor Texterkennung, Layoutanalyse und koordinatenbasierte Extraktion beginnen.
Eine Bildbibliothek prüfen
Vergleichen Sie das Verhalten bei allen acht EXIF-Werten mit einer stabilen kanonischen Zuordnung von Drehung und Spiegelung.
Häufige Fragen
Welche Werte werden akzeptiert?
Akzeptiert werden ausschließlich ganzzahlige EXIF-Ausrichtungen von 1 bis 8.
Dreht diese Funktion das Bild selbst?
Nein. Sie gibt die Transformation für eine aufrechte Darstellung der gespeicherten Pixel zurück; Ihre Bildbibliothek wendet sie an.
Warum sind Spiegelungen erforderlich?
Vier EXIF-Ausrichtungen enthalten eine Reflexion. Eine Drehung allein kann die gespiegelten Ausrichtungen 2, 4, 5 und 7 nicht korrekt darstellen.
Erst spiegeln oder erst drehen?
Zuerst spiegeln, dann im Uhrzeigersinn drehen. Die Reihenfolge zählt bei den Ausrichtungen 5 und 7, weil Spiegelung und Drehung in vertauschter Reihenfolge ein anderes Bild ergeben.
Was, wenn meine Fotosoftware die Ausrichtung schon selbst korrigiert?
Dann wenden Sie die Korrektur nicht ein zweites Mal an, sonst ist das Foto doppelt gedreht. Schalten Sie die automatische Korrektur ab oder nutzen Sie das Ergebnis nur zur Kontrolle der Datei.
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/image/exif-orientation-fix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"orientation":6}'const res = await fetch("https://api.kit.forhosting.com/image/exif-orientation-fix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"orientation": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/exif-orientation-fix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"orientation": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/exif-orientation-fix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"orientation":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"orientation":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/exif-orientation-fix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"orientation": 6
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exif_orientation_fix",
"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
max_mb | 15 |
max_megapixels | 12 |
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
So wenden Sie die ausgegebene Transformation an
Die Antwort wiederholt den Wert und gibt rotation_degrees als 0, 90, 180 oder 270 im Uhrzeigersinn aus. Zusätzlich enthält sie die booleschen Felder flip_horizontal und flip_vertical. operation_order lautet flip_then_rotate; eine aktivierte Spiegelung ist daher vor der Drehung auf das gespeicherte Raster anzuwenden.
Technische Fragen
In welcher Reihenfolge erfolgen Spiegelung und Drehung?
Spiegeln Sie zuerst die gespeicherten Pixel wie angegeben und drehen Sie anschließend gemäß rotation_degrees im Uhrzeigersinn, wie operation_order festlegt.
Was kostet die Nutzung per API?
Jede API-Anfrage kostet $0.002. Die Berechnung läuft auch im kostenlosen Browser-Werkzeug, da weder Upload noch Netzwerkzugriff nötig sind.