К сожалению, созданный вами образ создан с использованием LibGD, который по умолчанию не записывает какие-либо расширенные данные EXIF.
Как сопровождающий расширения EXIF, поставляемого с PHP, я могу немного рассказать вам о том, как это работает под капотом:
Когда вы загружаете изображение, используя exif_read_data()
, тогда по умолчанию возвращаются вышеупомянутые разделы (за исключением COMMENT
в вашем случае, так как оно генерируется LibGD). Если в двоичных метаданных изображения обнаружен раздел MAKERNOTE
, то PHP попытается преобразовать значение в один из известных форматов в PHP [1].
Если подпись сопоставляется с одним из известных форматов, тогда PHP будет считывать все соответствующие данные IFD (данные файла изображения) из заголовка и пытаться разрешить некоторые из имен тегов в соответствии с запеченным в списке тегов. , Это делает возвращаемый массив намного более зависимым для работы, вместо того, чтобы писать код вроде echo $exif['0x0112'];
(ориентация), массив становится примерно таким: echo $exif['Orientation'];
.
Если подпись не совпадает, тогда PHP все равно будет пытаться прочитать соответствующие данные EXIF в изображении, однако теги не будут отображаться для нестандартных тегов. PHP также продолжит читать такие вещи, как миниатюры и т. Д., Учитывая, что двоичные данные соответствуют спецификации EXIF.
Наконец; Расширение PHP EXIF доступно только для чтения, поэтому, даже если вам нужно узнать свою ориентацию по рассматриваемому изображению, вы не можете написать его вручную с расширением по умолчанию, которое поставляется с PHP, я боюсь.
[1] http://git.php.net/?p=php-src.git;a=blob;f=ext/exif/exif.c;h=d37a61f83da7bd8c14eeaa0d14762e3a4e7c80e6;hb=HEAD#l1336