在PHP中从图像二进制字符串中提取EXIF数据

14

PHP函数exif_read_data()需要输入一个文件名,但我只有一个以字符串形式存在的图像数据(可以使用imagecreatefromstring()),并且我不能将其写入临时文件。如何在不将此图像字符串写入磁盘的情况下提取EXIF信息?我真正需要的是方向属性。如果有影响,这是在Linux系统上执行的。

2个回答

26

流包装器可以将您的字符串/图像转换为可用作文件句柄的内容,如此处所示。但是,我无法找到任何方法将该文件句柄转换为可以伪装成exif_read_data函数所需的文件名。

您可以尝试传递该页面上列出的data:// 伪URL,并查看exif函数是否接受它。


9
哇,这下可行了!非常感谢!这是我用的代码:exif_read_data("data://image/jpeg;base64," . base64_encode($imageString)) - rymo

9

@rymo的评论添加到@MarcB的回答中作为单独的回答:

这个方法可行:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接