Orientacja obrazu to kierunek, w którym zdjęcie jest ustawione, gdy na nie patrzysz: pionowo, do góry nogami, obrócone na bok albo odbite w lustrze. W metadanych pliku pole Orientation mówi oprogramowaniu, jak obrócić zapisany obraz, żeby wyświetlił się pionowo.
W fotografii orientacja często oznacza pion (portret) lub poziom (krajobraz). Zdjęcie w orientacji pionowej jest wyższe niż szersze, a w orientacji poziomej szersze niż wyższe. Gdy robisz zdjęcie, aparat lub telefon zapisuje sposób, w jaki go trzymasz, jako dane o orientacji w pliku.
Które pliki to zawierają
Znacznik Orientation jest częścią standardu Exif, który przejął go z formatu TIFF. Jego ID znacznika to 0x0112, czyli 274 w systemie dziesiętnym. Standard wymienia go jako zalecany znacznik dla głównego obrazu i znajdziesz go w tych plikach:
- JPG i zdjęcia TIFF z aparatów i telefonów
- HEIC, PNG i obrazy WebP, które wszystkie mogą zawierać blok danych Exif
Plik HEIC może też zapisywać obrót i odbicie jako osobne właściwości swojego kontenera, o nazwach irot i imir. Niektóre aparaty dodają też prywatny znacznik. Część modeli Canon zapisuje CameraOrientation, co w raporcie metadanych jest widoczne jako Horizontal (normal), Rotate 90 CW lub Rotate 270 CW.
Jak wyglądają wartości
Wewnątrz pliku wartość jest liczbą od 1 do 8. Każda liczba określa, gdzie na ekranie ma się znaleźć pierwszy wiersz i pierwsza kolumna zapisanych pikseli. Raport metadanych zwykle pokazuje znaczenie słownie, przy czym CW oznacza obrót zgodnie z ruchem wskazówek zegara:
1toHorizontal (normal): obraz jest zapisany pionowo, więc nic się nie zmienia3toRotate 180: obraz jest zapisany do góry nogami6toRotate 90 CW: oprogramowanie obraca obraz o 90 stopni zgodnie z ruchem wskazówek zegara przed wyświetleniem8toRotate 270 CW: oprogramowanie obraca obraz o 270 stopni zgodnie z ruchem wskazówek zegara, czyli o 90 stopni przeciwnie do ruchu wskazówek zegara2,4,5i7dodają odbicie lustrzane, na przykładMirror horizontal
Standard oznacza wszystkie inne liczby jako zarezerwowane. Wartość spoza zakresu od 1 do 8 nie ma więc określonego znaczenia.
Jak filmy zapisują obrót
Pliki wideo obsługują orientację w inny sposób. Plik MP4 lub MOV zapisuje macierz wyświetlania w nagłówku swojej ścieżki wideo. Ta macierz mówi odtwarzaczowi, jak obrócić lub odbić klatki przed wyświetleniem.
Programy odczytujące metadane zamieniają tę macierz na pojedynczy kąt w stopniach. ExifTool liczy kąt zgodnie z ruchem wskazówek zegara, a FFmpeg przeciwnie do ruchu wskazówek zegara, w zakresie od -180 do 180. To samo wideo może więc w jednym raporcie pokazywać 90, a w innym -90.
Dlaczego ma to znaczenie dla Twojego pliku
Wartość Orientation nie przesuwa żadnych pikseli. Piksele pozostają w kolejności zapisanej przez aparat, a znacznik tylko mówi przeglądarce, jak je pokazać. Przeglądarki internetowe domyślnie stosują ten znacznik, ale program, który go ignoruje, wyświetli zdjęcie w pionie położone bokiem.
Dlatego szerokość i wysokość też mogą wyglądać na zamienione. Image Width i Image Height opisują zapisane piksele przed jakimkolwiek obrotem. Zdjęcie w pionie z Rotate 90 CW może więc raportować szerokość większą niż wysokość.
Edycja może spowodować drugi problem. Jeśli program obróci piksele, ale zostawi stary znacznik, obraz zostanie obrócony podwójnie. Standard Exif zaleca, aby po obróceniu obrazu oprogramowanie edycyjne ustawiało Orientation z powrotem na 1.
Strony PDF używają osobnego pola. Page Rotation obraca całą stronę zgodnie z ruchem wskazówek zegara w krokach co 90 stopni podczas wyświetlania lub drukowania.