Извлечение EXIF-данных из большого двоичного объекта (двоичной строки) в PHP


Функция PHP exif_read_data() требует имя файла для ввода, однако у меня есть только данные изображения в строке (такой, что я могу использовать imagecreatefromstring()), и я не могу записать его во временный файл. Как извлечь информацию EXIF без записи этой строки образа на диск? Все, что мне действительно нужно, - это атрибут ориентации. Это в системе Linux, если это имеет значение.

2 9

2 ответа:

Обертка потока может превратить вашу строку/образ в нечто, пригодное для использования в качестве файловой ручки, как показаноздесь . Однако я не вижу никакого способа превратить этот файловый хэндл во что-то, что может маскироваться под имя файла, которое ожидает exif_read_data.

Вы можете попробовать передать data:// псевдо-url, указанный на этой странице, и посмотреть, примет ли его функция exif.

Добавление комментария @rymo в качестве отдельного ответа:

Это работает:

$exif = exif_read_data("data://image/jpeg;base64," . base64_encode($image));
echo $exif['Orientation'];