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

rym*_*ymo 9 php image-manipulation exif

PHP函数exif_read_data()需要一个文件名来输入,但我只有一个字符串中的图像数据(这样我可以使用imagecreatefromstring()),我不能将它写入临时文件.如何在不将此图像字符串写入磁盘的情况下提取EXIF信息?我真正想要的是Orientation属性.如果重要的话,这是在Linux系统上.

Mar*_*c B 24

甲流包装可以把你的字符串/图像转换成可用的东西作为一个文件句柄,如图所示这里.但是,我看不出任何方法可以将该文件句柄转换成可以伪装成exif_read_data期望的文件名的东西.

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

  • 哇,这就行了!非常感谢!这是我使用的:`exif_read_data("data:// image/jpeg; base64,".base64_encode($ imageString))` (6认同)

bri*_*uth 7

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

这有效:

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