Существует два основных типа файлов JPEG: JPEG/JFIF и JPEG/Exif.
Оба спецификатора (JFIF и Exif) требуют, чтобы их соответствующий заголовок отображался непосредственно после маркера SOI (начало изображения).
В случае JFIF это маркер APP0, в случае Exif это маркер APP1.
Возможно иметь файл JPEG/JFIF с блоком Exif где-то позже в файле. Я заметил, что это происходит при экспорте JPEG/Exif-файла из iPhoto. iPhoto завершает преобразование его в файл JPEG/JFIF, но сохраняет метаданные Exif где-то позже в файле.
Однако, помимо требования, чтобы заголовок для соответствующего формата файла должен был быть первым, нет ограничений на упорядочение других блоков маркеров APP # в файле. Поэтому блок Exif может выполняться в произвольной позиции в файле JPEG/JFIF.
exif standard подтверждает это - http://www.digicamsoft.com/exif22/exif22/html/exif22_17.htm?gInitialPosX=10px&gInitialPosY=10px&gZoomValue=100 –