Τι υπάρχει πραγματικά μέσα σε μια φωτογραφία

Ανοίξτε οποιαδήποτε φωτογραφία απευθείας από ένα τηλέφωνο και η εικόνα είναι μόνο ένα μέρος του αρχείου. Τυλιγμένο γύρω της βρίσκεται ένα μπλοκ μεταδεδομένων που κατέγραψε η κάμερα την ίδια στιγμή: ο κατασκευαστής και το μοντέλο της συσκευής, ο φακός, οι ρυθμίσεις έκθεσης, το ακριβές δευτερόλεπτο που ενεργοποιήθηκε το κλείστρο, η έκδοση του λειτουργικού συστήματος και — όταν οι υπηρεσίες τοποθεσίας είναι ενεργοποιημένες — το γεωγραφικό πλάτος και μήκος του σημείου όπου στεκόσασταν, συνήθως με ακρίβεια λίγων μέτρων.

Τίποτα από αυτά δεν είναι ορατό στην εικόνα. Όλα ταξιδεύουν με το αρχείο. Στείλτε τη φωτογραφία ως συνημμένο email, αποθηκεύστε την σε έναν κοινόχρηστο φάκελο, καταχωρίστε ένα αντικείμενο προς πώληση με αυτήν, και κάθε ένα από αυτά τα πεδία πηγαίνει μαζί της.

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

Αφαιρέστε τα byte, μην επανακωδικοποιείτε

Υπάρχουν δύο τρόποι για να αφαιρέσετε τα μεταδεδομένα από μια εικόνα, και μόνο ένας από αυτούς είναι σωστός.

Ο εύκολος τρόπος είναι να αποτυπώσετε την εικόνα σε έναν καμβά HTML και να την αποθηκεύσετε ξανά. Τα μεταδεδομένα εξαφανίζονται επειδή ένας καμβάς δεν περιείχε ποτέ τίποτα. Επίσης, συμπιέζει ξανά την εικόνα — ένας δεύτερος γύρος συμπίεσης JPEG με απώλειες πάνω σε αυτόν της κάμερας — και απορρίπτει το ενσωματωμένο χρωματικό προφίλ, οπότε το «καθαρισμένο» αρχείο είναι μετρήσιμα χειρότερο από το αρχικό και τα χρώματά του έχουν μετατοπιστεί. Τα περισσότερα δωρεάν εργαλεία αφαίρεσης μεταδεδομένων λειτουργούν με αυτόν τον τρόπο, και αυτός είναι ο λόγος για τον οποίο το αρχείο που λαμβάνετε πίσω έχει συχνά διαφορετικό μέγεθος και ελαφρώς διαφορετική εικόνα.

Αυτό το εργαλείο κάνει το άλλο. Ένα JPEG είναι μια ακολουθία τμημάτων δεικτών· ένα PNG είναι μια ακολουθία τμημάτων· ένα WebP είναι ένας περιέκτης RIFF. Τα μεταδεδομένα βρίσκονται σε συγκεκριμένα, αναγνωρίσιμα τμήματα σε καθένα από αυτά — μπλοκ APPn στο JPEG, τμήματα eXIf, tEXt, iTXt, zTXt και tIME στο PNG, τμήματα EXIF και XMP στο WebP. Η αφαίρεσή τους είναι ζήτημα διάσχισης της δομής του ίδιου του αρχείου, παράλειψης αυτών των μπλοκ και αντιγραφής όλων των άλλων αμετάβλητων.

Η συμπιεσμένη εικόνα δεν αποκωδικοποιείται ποτέ. Αυτό σημαίνει ότι τα δεδομένα εικόνας στο αρχείο που κατεβάζετε είναι bit προς bit τα δεδομένα εικόνας στο αρχείο που δώσατε — όχι «οπτικά πανομοιότυπα», όχι «υψηλής ποιότητας», αλλά πανομοιότυπα. Η μόνη διαφορά μεταξύ των δύο αρχείων είναι τα μεταδεδομένα που αφαιρέθηκαν.

Τι δεν αφαιρούμε και γιατί

Δύο πράγματα διατηρούνται σκόπιμα και τα δύο σας εμφανίζονται με ένα πλαίσιο ελέγχου σε περίπτωση που διαφωνείτε.

Το χρωματικό προφίλ. Ένα προφίλ ICC περιγράφει σε ποιον χρωματικό χώρο είναι κωδικοποιημένα τα pixel. Τα σύγχρονα τηλέφωνα φωτογραφίζουν σε ευρύ φάσμα, και μια φωτογραφία ευρέος φάσματος χωρίς το προφίλ της ερμηνεύεται ως συνηθισμένο sRGB και αποδίδεται λάθος — συνήθως ξεθωριασμένη, μερικές φορές υπερβολικά έντονη. Το προφίλ περιγράφει την εικόνα, όχι τον φωτογράφο, επομένως παραμένει από προεπιλογή.

Η ένδειξη περιστροφής, όταν η φωτογραφία τη χρειάζεται. Τα τηλέφωνα δεν περιστρέφουν τα pixel όταν γυρίζετε την κάμερα· αποθηκεύουν τη φωτογραφία όπως την είδε ο αισθητήρας και γράφουν έναν μοναδικό αριθμό EXIF που λέει ποια είναι η σωστή κατεύθυνση. Αφαιρέστε αυτόν τον αριθμό και το καθαρό αντίγραφο εμφανίζεται στο πλάι σε οποιαδήποτε εφαρμογή τον σέβεται. Όταν μια φωτογραφία βασίζεται σε αυτόν, αυτό το εργαλείο ανακατασκευάζει ένα ελάχιστο μπλοκ που περιέχει αυτή τη μία τιμή και τίποτα άλλο — χωρίς κάμερα, χωρίς χρονική σήμανση, χωρίς τοποθεσία.

Πού αφήνει αυτό τις υπόλοιπες φωτογραφίες σας

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

Αυτό είναι το μισό για το οποίο υπάρχει το Vaultine: ένα κρυπτογραφημένο θησαυροφυλάκιο όπου τα αρχεία κλειδώνονται με AES-256-GCM στην ίδια τη συσκευή, ανοίγουν σε ένα ενσωματωμένο πρόγραμμα προβολής αντί να αποκρυπτογραφούνται στον δίσκο και ξεκλειδώνονται με μοτίβο ή PIN αντί για λογαριασμό. Είναι μια διαφορετική δουλειά από αυτήν τη σελίδα — το Vaultine αποθηκεύει αρχεία, δεν επεξεργάζεται τα μεταδεδομένα τους — αλλά τα δύο μισά του ίδιου ενστίκτου. Οι φωτογραφίες που κοινοποιείτε διαρρέουν πού βρισκόσασταν. Οι φωτογραφίες που κρατάτε θα πρέπει να είναι κλειδωμένες.