La fotocamera di sistema non ruota lo scatto: salva i pixel come li legge
il sensore e annota la rotazione in EXIF. SkiaSharp (SKBitmap.Decode)
ignora quel tag, quindi le foto scattate ruotate finivano storte nelle
miniature e venivano inviate cosi' al server.
- ImageOrientation: applica l'orientamento ai pixel e ricodifica senza tag
residui, mantenendo il formato di partenza. Immagine gia' dritta: nessuna
ricodifica, per non perdere qualita' inutilmente. In caso di errore
restituisce i byte originali, meglio una foto storta che nessuna foto.
- UtilityFile.ConvertToDto: normalizza li', unico punto di passaggio di
fotocamera e galleria, cosi' miniature, salvataggio locale e upload
lavorano su pixel gia' dritti. Corretto anche DimensionBytes.
- ImageThumb: applica l'orientamento anche in fase di miniatura, per
raddrizzare le foto gia' presenti sul dispositivo.
Nessun ritratto forzato: costringere una foto orizzontale in verticale
vorrebbe dire ruotare il contenuto o ritagliarlo, e queste foto sono prove
di ispezione.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>