Cómo se almacena el EXIF dentro de un JPEG
Un archivo JPEG es una secuencia de segmentos, cada uno anunciado por un marcador de dos bytes. Los metadatos viven en segmentos APP1 cerca del inicio del archivo, antes de cualquier dato de píxeles. Un segmento APP1 de EXIF comienza con la firma ASCII Exif seguida de dos bytes nulos, y luego incrusta un archivo TIFF en miniatura: una marca de orden de bytes (II para little-endian, MM para big-endian), y después uno o más directorios de archivo de imagen (IFD). Cada IFD es una tabla plana de entradas de 12 bytes — número de etiqueta, tipo de dato, recuento, y un valor o un desplazamiento hacia él. IFD0 contiene etiquetas a nivel de cámara como Make y Model, y dos etiquetas puntero especiales derivan hacia subdirectorios: 0x8769 apunta al sub-IFD EXIF (ajustes de exposición, marca de tiempo original, objetivo) y 0x8825 apunta al sub-IFD GPS. Como todo esto reside en segmentos autocontenidos separados de los datos de imagen comprimidos, un limpiador puede eliminarlo con un empalme a nivel de bytes y dejar los píxeles intactos.