Mitä valokuvan sisällä todella on

Avaa mikä tahansa valokuva suoraan puhelimesta, ja kuva on vain osa tiedostoa. Sen ympärille on kääritty metadatalohko, jonka kamera kirjoitti samalla hetkellä: laitteen merkki ja malli, linssi, valotusasetukset, tarkka sekunti jolloin suljin laukesi, käyttöjärjestelmän versio, ja — kun sijaintipalvelut ovat päällä — sen paikan leveys- ja pituusaste, jossa seisoit, yleensä muutaman metrin tarkkuudella.

Mikään tästä ei näy kuvassa. Kaikki se kulkee tiedoston mukana. Lähetä valokuva sähköpostin liitteenä, pudota se jaettuun kansioon, listaa myytävä esine sen kanssa, ja jokainen näistä kentistä kulkee sen mukana.

Yllä oleva työkalu lukee kyseisen lohkon ja näyttää sen sinulle ennen kuin se poistaa mitään, koska numerot ovat argumentti. ”Tämä valokuva sisältää EXIF-metadataa” on abstraktia. Koordinaattipari, joka osoittaa etuovellesi, ei ole.

Poista tavut, älä koodaa uudelleen

On kaksi tapaa poistaa metadataa kuvasta, ja vain toinen niistä on oikein.

Helppo tapa on piirtää kuva HTML-kankaalle ja tallentaa se uudelleen. Metadata katoaa, koska kangas ei koskaan sisältänyt sellaista. Se myös pakkaa kuvan uudelleen — toinen kierros häviöllistä JPEG-pakkausta kameran päälle — ja pudottaa upotetun väriprofiilin, joten ”puhdistettu” tiedosto on mitattavasti huonompi kuin alkuperäinen ja sen värit ovat muuttuneet. Useimmat ilmaiset metadatan poistajat toimivat näin, ja siksi takaisin saamasi tiedosto on usein erikokoinen ja hieman erilainen kuva.

Tämä työkalu tekee sen toisen asian. JPEG on sarja merkintäsegmenttejä; PNG on sarja lohkoja; WebP on RIFF-säiliö. Metadata asuu tietyissä, tunnistettavissa segmenteissä kussakin — APPn-lohkoissa JPEG:ssä, eXIf-, tEXt-, iTXt-, zTXt- ja tIME-lohkoissa PNG:ssä, EXIF- ja XMP-lohkoissa WebP:ssä. Niiden poistaminen on kysymys tiedoston oman rakenteen läpikäymisestä, noiden lohkojen ohittamisesta ja kaiken muun kopioimisesta sellaisenaan.

Pakattua kuvaa ei koskaan pureta. Tämä tarkoittaa, että lataamassasi tiedostossa oleva kuvadata on bitti bitiltä sama kuvadata, joka oli sille antamassasi tiedostossa — ei ”visuaalisesti identtinen”, ei ”korkealaatuinen”, vaan identtinen. Ainoa ero näiden kahden tiedoston välillä on metadata, joka poistettiin.

Mitä emme poista, ja miksi

Kaksi asiaa säilytetään tarkoituksella, ja molemmat näytetään sinulle valintaruudun kera siltä varalta, että olet eri mieltä.

Väriprofiili. ICC-profiili kuvaa, mihin väriavaruuteen pikselit on koodattu. Nykyaikaiset puhelimet kuvaavat laajalla väriskaalalla, ja laajan väriskaalan valokuva ilman profiiliaan tulkitaan tavalliseksi sRGB:ksi ja se renderöidään väärin — yleensä haalistuneena, joskus räikeänä. Profiili kuvaa kuvaa, ei valokuvaajaa, joten se jää oletuksena.

Kiertolippu, kun valokuva tarvitsee sitä. Puhelimet eivät kierrä pikseleitä, kun käännät kameraa; ne tallentavat valokuvan siten kuin kenno sen näki, ja kirjoittavat yhden EXIF-numeron, joka kertoo, miten päin se kuuluu. Poista tuo numero ja puhdas kopio näkyy kyljellään missä tahansa sovelluksessa, joka noudattaa sitä. Kun valokuva luottaa siihen, tämä työkalu rakentaa uudelleen minimaalisen lohkon, joka sisältää vain tuon yhden arvon ja ei mitään muuta — ei kameraa, ei aikaleimaa, ei sijaintia.

Mihin tämä jättää muut valokuvasi

Tiedoston puhdistaminen ennen sen lähettämistä ratkaisee jakamispuoliskon ongelmasta. Se ei tee mitään niille valokuville, jotka yhä istuvat kamerarullallasi, jotka pitävät jokaisen kentän, jonka tämä työkalu juuri poisti, ja ovat luettavissa millä tahansa, jolla on pääsy laitteeseen.

Tätä puoliskoa varten Vaultine on olemassa: salattu holvi, jossa tiedostot lukitaan AES-256-GCM:llä laitteella itsellään, avataan sisäänrakennetussa katseluohjelmassa sen sijaan, että ne purettaisiin levylle, ja avataan kuvio- tai PIN-koodilla tilin sijaan. Se on eri työ kuin tämä sivu — Vaultine tallentaa tiedostoja, se ei muokkaa niiden metadataa — mutta saman vaiston kaksi puoliskoa. Jakamasi valokuvat paljastavat, missä olit. Säilyttämäsi valokuvat pitäisi olla lukittu.