Mi van valójában egy fotó belsejében

Ha megnyitsz bármilyen, közvetlenül telefonról származó fotót, maga a látvány csak a fájl egyik része. Körülötte egy metaadatblokk található, amelyet a kamera ugyanabban a pillanatban írt bele: az eszköz gyártója és típusa, az objektív, az expozíciós beállítások, az exponálás pontos másodperce, az operációs rendszer verziója, valamint — ha a helymeghatározás be van kapcsolva — a készítés helyének szélességi és hosszúsági fokai, rendszerint néhány méteres pontossággal.

Mindebből semmi sem látszik a képen. Mégis mindez együtt utazik a fájllal. Ha elküldöd a fotót e-mail-mellékletként, bedobod egy megosztott mappába, vagy meghirdetsz vele egy eladó tárgyat, az összes ilyen mező vele tart.

A fenti eszköz kiolvassa ezt a blokkot, és megmutatja neked, mielőtt bármit is eltávolítana, mert maguk a számok a legmeggyőzőbb érvek. Az, hogy „ez a fotó EXIF-metaadatokat tartalmaz”, elvont állítás. Egy koordinátapár, amely a bejárati ajtódra mutat, már egyáltalán nem az.

Távolítsd el a bájtokat, ne kódold újra a képet

Kétféleképpen lehet eltávolítani a metaadatokat egy képből, de csak az egyik módszer a helyes.

A könnyebbik út az, hogy a képet kirajzolják egy HTML-vászonra (canvas), majd újra elmentik. A metaadatok eltűnnek, mivel a vászon eleve nem hordoz ilyesmit. Csakhogy ez egyúttal újra is tömöríti a képet — a kamera saját tömörítése után egy második, veszteséges JPEG-tömörítést alkalmazva —, és eldobja a beágyazott színprofilt, így a „megtisztított” fájl mérhetően rosszabb minőségű lesz az eredetinél, a színei pedig eltolódnak. A legtöbb ingyenes metaadat-eltávolító így működik, és ezért kapod vissza gyakran eltérő fájlmérettel és kissé megváltozott képpel a fotódat.

Ez az eszköz a másik utat választja. A JPEG jelölőszegmensek sorozata; a PNG adatblokkok (chunkok) sorozata; a WebP pedig egy RIFF-konténer. A metaadatok mindegyikben jól meghatározott, azonosítható szegmensekben élnek — a JPEG-ben az APPn blokkokban, a PNG-ben az eXIf, tEXt, iTXt, zTXt és tIME blokkokban, a WebP-ben pedig az EXIF és XMP blokkokban. Az eltávolításukhoz elég végigmenni a fájl saját szerkezetén, kihagyni ezeket a blokkokat, minden mást pedig változatlanul átmásolni.

A tömörített képet az eszköz soha nem dekódolja. Ez azt jelenti, hogy a letöltött fájlban lévő képadat bitről bitre megegyezik az általad megadott fájl képadatával — nem „vizuálisan azonos”, nem „kiváló minőségű”, hanem teljesen azonos. A két fájl között az egyetlen különbség a kivett metaadat.

Mit nem távolítunk el, és miért

Két dolgot szándékosan megtartunk, és mindkettőt megmutatjuk egy-egy jelölőnégyzettel arra az esetre, ha másképp döntenél.

A színprofilt. Az ICC-profil azt írja le, milyen színtérben vannak kódolva a képpontok. A modern telefonok széles színtérben fotóznak, és ha egy ilyen képből hiányzik a profilja, a szoftverek hétköznapi sRGB-ként értelmezik, így hibásan — általában fakón, néha túl harsányan — jelenik meg. A profil a képet írja le, nem a fotóst, ezért alapértelmezés szerint megmarad.

A tájolási jelzőt, amikor a fotónak szüksége van rá. A telefonok nem forgatják el magukat a képpontokat, amikor elfordítod a kamerát; úgy tárolják a fotót, ahogy a szenzor látta, és egyetlen EXIF-számmal jelzik, melyik oldala van felül. Ha ezt a számot eltávolítod, a tiszta másolat minden olyan alkalmazásban az oldalán fekve jelenik meg, amely erre a jelzőre hagyatkozik. Amikor egy fotó igényli ezt, az eszköz visszaépít egy minimális blokkot, amely kizárólag ezt az egyetlen értéket tartalmazza, semmi mást — sem kamerát, sem időbélyeget, sem helyadatot.

Mi a helyzet a többi fotóddal

Ha küldés előtt megtisztítasz egy fájlt, az megoldja a probléma megosztással kapcsolatos felét. Nem tesz viszont semmit a filmtekercsedben maradó fotókkal, amelyek továbbra is megőrzik az összes olyan mezőt, amelyet ez az eszköz az imént eltávolított, és amelyeket bármi kiolvashat, ami hozzáfér az eszközödhöz.

Erre a másik felére készült a Vaultine: egy titkosított széf, amelyben a fájlokat közvetlenül az eszközön védi AES-256-GCM titkosítás, beépített megjelenítőben nyílnak meg ahelyett, hogy visszafejtve a lemezre íródnának, és fiók helyett mintával vagy PIN-kóddal oldhatók fel. Más feladatot lát el, mint ez az oldal — a Vaultine fájlokat tárol, nem szerkeszti a metaadataikat —, de ugyanannak a szemléletnek a két felét alkotják. A megosztott fotók elárulják, merre jártál. A megtartott fotókat pedig érdemes zárolni.