fix(thumbnails): EXIF-Drehung auswerten, hochkant blieb quer
Kameras speichern die Bildpunkte fast immer quer und legen die Drehung als EXIF-Notiz daneben. Browser befolgen sie von selbst - Go nicht. Deshalb stand dasselbe Foto in der grossen Ansicht aufrecht und lag im Vorschaubild auf der Seite. Neues Paket internal/imageutil liest genau ein Feld (0x0112) aus dem Anfang der Datei und dreht danach. Von Hand statt mit einer Bibliothek: Der Weg dorthin ist kurz und liegt fest, und gebraucht wird ein Feld. Gelesen werden nur die ersten 64 KB, damit ein 40-MB-Foto nicht zweimal im Speicher liegt. Gedreht wird vor dem Verkleinern - andersherum bekaeme ein hochkantes Foto den Zuschnitt eines Querformats. Bestehende Vorschaubilder aendern sich davon nicht. Dafuer neu: POST /admin/thumbnails/rebuild samt Knopf im Admin-Bereich. Auch Profilbilder aus OIDC laufen jetzt durch dieselbe Auswertung. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
edefce3572
commit
4bd9a6ca56
10 files changed
+514
-2
No files matched your search
+28
@@ -1442,6 +1442,34 @@ könnte.
|
||||
|
||||
- [ ] Am Trackpad gegenprüfen (Zwei-Finger-Zoom meldet sich als Strg + Rad)
|
||||
|
||||
## Hochkant-Fotos lagen im Vorschaubild quer (24.08.2026)
|
||||
|
||||
Kameras speichern die Bildpunkte fast immer quer und legen die Drehung als
|
||||
EXIF-Notiz daneben. Browser befolgen sie von selbst – Go nicht. Gemessen an
|
||||
einem Testbild mit 400×200 Bildpunkten und Drehung 6:
|
||||
|
||||
| | vorher | nachher |
|
||||
|---|---|---|
|
||||
| große Ansicht (Browser) | 200×400 hochkant ✅ | unverändert |
|
||||
| Vorschaubild (Server) | **256×128 quer** ❌ | 128×256 hochkant ✅ |
|
||||
|
||||
Alle acht Fälle, beide Byte-Reihenfolgen (II und MM):
|
||||
|
||||
- Drehung 1 und 3 bleiben quer, 6 und 8 werden hochkant – Seitenverhältnis
|
||||
allein genügt aber nicht als Beweis, deshalb ein gelber Balken als Marke:
|
||||
bei 6 landet er **oben**, bei 8 **unten**. Beide Bilder angesehen.
|
||||
- Leere Datei, Text statt JPEG, abgeschnittener EXIF-Block, Drehung 0 und 99
|
||||
ergeben alle 1 („nicht drehen") statt eines Fehlers.
|
||||
- Bei Drehung 1 entsteht keine Kopie des Bildes.
|
||||
|
||||
Bestehende Vorschaubilder ändern sich davon **nicht** – sie liegen fertig im
|
||||
Speicher. Dafür neu: Admin → Audit → „Rebuild image previews".
|
||||
Gemessen: 6 Bilder, 6 neu erzeugt, 0 Fehler; das quer liegende Testbild war
|
||||
danach hochkant.
|
||||
|
||||
- [ ] Auf der produktiven Instanz einmal „Rebuild" drücken und mit echten
|
||||
Handy-Fotos gegenprüfen
|
||||
|
||||
## Automatisiert geprüft (22.08.2026)
|
||||
|
||||
Diese Punkte hat Claude per API/`curl` gegen Wegwerf-Konten durchgespielt; sie
|
||||
|
||||
Reference in new issue
Block a user