Comment les EXIF sont stockés dans un JPEG
Un fichier JPEG est une suite de segments, chacun annoncé par un marqueur de deux octets. Les métadonnées vivent dans des segments APP1 en tête du fichier, avant toute donnée de pixels. Un segment APP1 EXIF commence par la signature ASCII Exif suivie de deux octets nuls, puis embarque un fichier TIFF miniature : une marque d'ordre des octets (II pour petit-boutiste, MM pour gros-boutiste), puis un ou plusieurs répertoires de fichiers d'images (IFD). Chaque IFD est une table plate d'entrées de 12 octets — numéro de balise, type de données, nombre, et une valeur ou un décalage vers elle. L'IFD0 contient les balises au niveau de l'appareil comme Make et Model, et deux balises pointeurs spéciales renvoient vers des sous-répertoires : 0x8769 pointe vers le sous-IFD EXIF (réglages d'exposition, horodatage original, objectif) et 0x8825 vers le sous-IFD GPS. Comme tout cela réside dans des segments autonomes, séparés des données d'image compressées, un nettoyeur peut les retirer par une coupe au niveau des octets et laisser les pixels intacts.