← Οδηγοί φωτογραφίας

Πού αποθηκεύονται τα δεδομένα EXIF σε μια φωτογραφία; (JPEG, PNG, HEIC)

Πού ζουν πραγματικά τα δεδομένα EXIF μέσα σε ένα αρχείο φωτογραφίας; Η κεφαλίδα APP1, το δέντρο IFD, τα byte offsets, και πώς τα JPEG, HEIC, PNG, TIFF και WebP το αποθηκεύουν το καθένα.

Γρήγορη απάντηση: Το EXIF αποθηκεύεται μέσα στο ίδιο το αρχείο εικόνας, όχι σε ένα ξεχωριστό sidecar αρχείο. Σε ένα JPEG ζει στο APP1 marker segment, ένα μπλοκ κεφαλίδας που ξεκινά με τα bytes 0xFFE1 κοντά στην αρχή του αρχείου, με τις ετικέτες διατεταγμένες μέσα ως ένα δέντρο TIFF/IFD (IFD0, ένα Exif sub-IFD και ένα GPS IFD). Στο HEIC οι ίδιες ετικέτες βρίσκονται στα metadata boxes του container. Στο PNG μπορούν να ζουν σε ένα eXIf chunk. Το TIFF τις αποθηκεύει εγγενώς. Επειδή τα δεδομένα είναι ενσωματωμένα, ταξιδεύουν μαζί με τη φωτογραφία όποτε την αντιγράφετε ή τη στέλνετε. Αφήστε οποιαδήποτε φωτογραφία στον EXIF Viewer μας για να δείτε τι υπάρχει μέσα. Δεν ανεβαίνει τίποτα.

Οι άνθρωποι συχνά υποθέτουν ότι τα μεταδεδομένα ζουν σε μια κρυφή βάση δεδομένων στο τηλέφωνό τους, ή σε ένα μικρό αρχείο δίπλα στη φωτογραφία. Δεν ισχύει. Το "πότε, πού και πώς" γράφεται απευθείας μέσα στα bytes του αρχείου εικόνας, σε μια δεσμευμένη περιοχή κοντά στην αρχή. Αυτός ο οδηγός εξηγεί πού βρίσκεται αυτή η περιοχή και τι συμβαίνει όταν επεξεργάζεστε ή μοιράζεστε τη φωτογραφία.

Η σύντομη εκδοχή: είναι μέσα στο αρχείο, κοντά στην κορυφή

Ανοίξτε οποιοδήποτε JPEG κατευθείαν από μια κάμερα και κοιτάξτε τα πρώτα μερικές εκατοντάδες bytes. Μετά τον marker αρχής εικόνας (0xFFD8), ένα από τα πρώτα πράγματα που συναντάτε είναι το APP1 marker segment, που κρατάει ολόκληρο το μπλοκ EXIF. Τα συμπιεσμένα pixel έρχονται μετά από αυτό. Έτσι ένα τυπικό JPEG κάμερας έχει τη σειρά: marker αρχής 0xFFD8, ο marker APP1 0xFFE1 που κρατάει το EXIF, προαιρετικές κεφαλίδες (APP2 ICC profile, APP13 IPTC, XMP), τα δεδομένα pixel, μετά ο marker τέλους 0xFFD9. Επειδή το EXIF βρίσκεται σε μια κεφαλίδα κοντά στην κορυφή, ξεχωριστά από τα pixel, μια καθαρή επεξεργασία EXIF δεν ξανασυμπιέζει την εικόνα. Το εργαλείο ξαναγράφει μόνο την περιοχή της κεφαλίδας.

Το δέντρο IFD: IFD0, Exif sub-IFD, GPS IFD

Το APP1 segment ανοίγει με 0xFFE1, ένα μήκος δύο byte, και το αναγνωριστικό Exif\0\0. Αμέσως μετά από αυτό, το payload ξεκινά με μια μικροσκοπική κεφαλίδα TIFF: το EXIF είναι, εσωτερικά, ένα μικρό αρχείο TIFF ενσωματωμένο μέσα στο JPEG. Αυτή η κεφαλίδα δηλώνει τη σειρά των byte (II little-endian ή MM big-endian) και ένα offset προς τον πρώτο κατάλογο ετικετών.

Από εκεί, οι ετικέτες οργανώνονται ως ένα δέντρο από IFDs (Image File Directories), όχι ως μία επίπεδη λίστα. Καθένα έχει μια δουλειά:

  • IFD0 (ο "μηδενικός" ή "TIFF" κατάλογος): πεδία επιπέδου κάμερας και εικόνας όπως Make, Model, Software, Orientation και Copyright. Κρατάει επίσης δύο ετικέτες δείκτη που οδηγούν στους υποκαταλόγους παρακάτω.
  • Exif sub-IFD: τεχνικά δεδομένα της στιγμής λήψης. DateTimeOriginal, ρυθμίσεις έκθεσης, φακός, ISO, χρωματικός χώρος.
  • GPS IFD: γεωγραφικό πλάτος, γεωγραφικό μήκος, υψόμετρο και χρονικές σημάνσεις προερχόμενες από GPS, παρόντα μόνο όταν καταγράφηκε μια τοποθεσία.
  • IFD1 (ο "πρώτος" κατάλογος): μια ενσωματωμένη μικρογραφία που δημιούργησε η κάμερα.

Ένας reader διασχίζει το δέντρο: ξεκινά από την κεφαλίδα TIFF, μεταβαίνει στο IFD0, ακολουθεί τον δείκτη Exif για τις ρυθμίσεις λήψης, ακολουθεί τον δείκτη GPS για την τοποθεσία. Ο EXIF Viewer μας κάνει ακριβώς αυτό και παρουσιάζει κάθε κατάλογο στον δικό του πίνακα. Το reference ετικετών EXIF είναι το πλήρες λεξικό κάθε πεδίου. Τιμές που χωράνε σε τέσσερα byte βρίσκονται inline στην καταχώρηση της ετικέτας. Μεγαλύτερες, όπως μια συντεταγμένη GPS, αποθηκεύονται αλλού στο segment, με την καταχώρηση να κρατάει ένα byte offset προς αυτές.

Πώς αποθηκεύουν οι άλλες μορφές τις ίδιες ετικέτες

Οι ετικέτες EXIF είναι σε μεγάλο βαθμό ίδιες σε όλες τις μορφές. Αυτό που διαφέρει είναι ο container στον οποίο τοποθετούνται οι ετικέτες.

  • JPEG / JPG: το APP1 marker segment που περιγράφηκε παραπάνω.
  • TIFF: αποθηκεύει το EXIF εγγενώς. Ένα αρχείο TIFF είναι μια δομή από IFDs, οπότε το EXIF δεν είναι προσαρτημένο, είναι μέρος της βασικής μορφής. Το EXIF του JPEG είναι ένα δανεισμένο αντίγραφο αυτής της διάταξης TIFF.
  • HEIC: η προεπιλογή του iPhone από το iOS 11. Ο container HEIF του είναι φτιαγμένος από ένθετα "boxes", και οι ετικέτες EXIF ζουν σε ένα item-metadata box αντί για έναν marker στυλ JPEG. Ίδιες ετικέτες, διαφορετική τοποθέτηση.
  • PNG: μπορεί να μεταφέρει EXIF σε ένα ειδικό eXIf chunk. Πιο απλά εργαλεία μερικές φορές χρησιμοποιούν tEXt ή iTXt text chunks αντί γι' αυτό. Πολλά PNG που εξάγονται για το web δεν φέρουν κανένα.
  • WebP: αποθηκεύει το EXIF σε ένα EXIF chunk μέσα στον RIFF container του.

Το reference ετικετών καλύπτει τις επιφυλάξεις επεξεργασίας ανά μορφή αναλυτικά.

Γιατί έχει σημασία το "ενσωματωμένο": τα μεταδεδομένα ταξιδεύουν μαζί με το αρχείο

Επειδή το EXIF ζει μέσα στο αρχείο, ακολουθεί τη φωτογραφία παντού όπου πηγαίνει το αρχείο. Αντιγράψτε το JPEG σε ένα USB stick, επισυνάψτε το σε ένα email, ή αφήστε το σε έναν κοινόχρηστο φάκελο, και οι συντεταγμένες GPS και η ώρα λήψης έρχονται μαζί. Αυτός ακριβώς είναι ο λόγος που τα μεταδεδομένα είναι τόσο χρήσιμα για αποδείξεις και τόσο επικίνδυνα για την ιδιωτικότητα: η απόδειξη, και η διαρροή, είναι ενσωματωμένες.

Εξηγεί επίσης γιατί η αφαίρεση του EXIF δεν είναι μια διαγραφή μιας γραμμής. Οι ετικέτες είναι υφασμένες μέσα στη δομή της κεφαλίδας του αρχείου, οπότε η αφαίρεσή τους σημαίνει ξαναγράψιμο του αρχείου χωρίς αυτή την περιοχή. Ο EXIF Remover μας το κάνει αυτό στο πρόγραμμα περιήγησής σας.

Τι συμβαίνει όταν επεξεργάζεστε, τραβάτε στιγμιότυπο οθόνης ή ανεβάζετε

Επειδή το EXIF είναι μέρος του αρχείου, αυτό που επιβιώνει εξαρτάται από το αν το αρχείο ξανακωδικοποιείται:

  • Αντιγραφή, μετακίνηση, μετονομασία: τα bytes παραμένουν αμετάβλητα, οπότε το EXIF διατηρείται.
  • Περικοπή, περιστροφή, ελαφριές επεξεργασίες: οι περισσότεροι επεξεργαστές διατηρούν το μπλοκ και απλώς ενημερώνουν τις ετικέτες διαστάσεων και προσανατολισμού. Κάποιοι το ξαναγράφουν. Ελέγξτε μετά με τον viewer.
  • Στιγμιότυπο οθόνης: ένα στιγμιότυπο οθόνης είναι μια ολοκαίνουργια εικόνα με το δικό της ελάχιστο EXIF και κανένα από τα δεδομένα κάμερας ή GPS του πρωτότυπου. Είναι ουσιαστικά μια διαγραφή μεταδεδομένων.
  • Ανέβασμα σε πλατφόρμες κοινωνικών δικτύων: Instagram, Facebook, X και WhatsApp αφαιρούν το EXIF κατά το ανέβασμα με ξανακωδικοποίηση. Εργαλεία κοινής χρήσης αρχείων όπως email, Dropbox και AirDrop το διατηρούν.

Για τη μεγαλύτερη εικόνα του τι καταγράφει το EXIF και γιατί οι άνθρωποι το ελέγχουν, δείτε τι είναι τα δεδομένα EXIF.

Συχνές ερωτήσεις

Αποθηκεύεται το EXIF σε ένα ξεχωριστό αρχείο δίπλα στη φωτογραφία; Όχι, είναι ενσωματωμένο μέσα στο ίδιο το αρχείο εικόνας. (Κάποιες επαγγελματικές ροές εργασίας RAW χρησιμοποιούν .xmp sidecars, αλλά το τυπικό EXIF σε ένα JPEG, HEIC, PNG ή TIFF ζει μέσα στην εικόνα.)

Ποια είναι η διαφορά μεταξύ του μπλοκ APP1 και των IFDs; Το APP1 είναι η υποδοχή JPEG που κρατάει το EXIF. Τα IFDs (IFD0, Exif sub-IFD, GPS IFD) είναι το δέντρο καταλόγων μέσα σε αυτή την υποδοχή.

Συμπέρασμα

Το EXIF δεν κρατιέται σε μια κρυφή βάση δεδομένων εφαρμογής ή σε ένα sidecar αρχείο. Είναι ενσωματωμένο στην εικόνα: σε ένα JPEG αυτό σημαίνει το APP1 marker segment κοντά στην κορυφή, δομημένο ως ένα δέντρο TIFF/IFD (IFD0, Exif sub-IFD, GPS IFD). Τα HEIC, PNG, WebP και TIFF αποθηκεύουν τις ίδιες ετικέτες στους δικούς τους containers. Επειδή είναι ενσωματωμένο, τα μεταδεδομένα ταξιδεύουν με κάθε αντίγραφο.

Για να δείτε πού ζουν τα μεταδεδομένα της φωτογραφίας σας: EXIF Viewer. Για να τα αφαιρέσετε πριν τα μοιραστείτε: EXIF Remover. Για τη σημασία κάθε ετικέτας: reference ετικετών EXIF. Όλα στο πρόγραμμα περιήγησής σας, δεν ανεβαίνει τίποτα.

Δοκιμάστε τα εργαλεία

Σφραγίστε μια φωτογραφία απευθείας στο πρόγραμμα περιήγησης ή εγκαταστήστε την εφαρμογή iOS για να τραβάτε ζωντανές φωτογραφίες με GPS και ατομικό ρολόι.

Download on theApp Store
Άνοιγμα διαδικτυακού εργαλείου →Προβολέας EXIF →