EXIF не возвращает детали ориентации с переполнением стека

Я пытаюсь получить информацию об ориентации изображения с помощью функции PHP exif_read_data (), но, к сожалению, я не могу получить нужную информацию. Я получаю только

массив
(
[FILE] => Массив
(
[FileName] => sasfasdfasd-asdf-asdasdf-afdsd-767563900.jpg
[FileDateTime] => 1541527956
[FileSize] => 302871
[FileType] => 2
[MimeType] => image / jpeg
[SectionsFound] => КОММЕНТАРИЙ
)

[ВЫЧИСЛЕНО] => Массив
(
[html] => width = "1000" height = "750" [Height] => 750
[Ширина] => 1000
[IsColor] => 1
)

[COMMENT] => Массив
(
[0] => СОЗДАТЕЛЬ: gd-jpeg v1.0 (с использованием IJG JPEG v90), качество = 100

)

)

Я использую PHP 7.2
Может кто-нибудь сказать, пожалуйста, как я могу получить подробности ориентации изображения с помощью PHP?
Я проверил свои библиотеки GD, а также EXIF, используя информацию PHP. Они работают нормально.

0

Решение

К сожалению, созданный вами образ создан с использованием 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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]