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

发布于 2024-10-27 03:38:25 字数 196 浏览 4 评论 0原文

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

The PHP function exif_read_data() requires a filename for input, however I only have the image data in a string (such that I can use imagecreatefromstring()) and I can not write it to a temp file. How do I extract EXIF information without writing this image string to disk? All I really want is the Orientation attribute. This is on a Linux system if it matters.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

煮酒 2024-11-03 03:38:25

流包装器可以将字符串/图像转换为可用作文件句柄的内容,如此处所示。但是,我看不到任何方法可以将该文件句柄转换为可以伪装成 exif_read_data 期望的文件名的东西。

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

A stream wrapper can turn your string/image into something useable as a filehandle, as shown here. However, I can't see any way of turning that filehandle into something that can masquerade as the filename that exif_read_data expects.

You might try passing the data:// pseudo-url listed on that page and see if the exif function will accept it.

把时间冻结 2024-11-03 03:38:25

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

这有效:

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

Adding @rymo’s comment on @MarcB’s answer as a separate answer:

This works:

$exif = exif_read_data("data://image/jpeg;base64," . base64_encode($image));
echo $exif['Orientation'];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文