使用PHP读取HEIC照片的EXIF数据

5

我想读取一张HEIC照片的EXIF数据。

如果运行以下命令:

<?php 
    var_dump(exif_read_data("test.heic"));

我明白了。

bool(false)

如果我运行Linux工具exiftool test.heic,我可以看到我需要的所有信息(位置、相机名称等)都在那里。
如果我运行exif_read_data("test.jpg"),我就能得到数据。所以我知道我使用的语法是正确的。
我正在使用PHP 7.1和ImageMagick 6.9.4-10 (1684)。
print_r(imagick::getVersion());
Array
(
    [versionNumber] => 1684
    [versionString] => ImageMagick 6.9.4-10 Q16 x86_64 2017-05-23 http://www.imagemagick.org
)

我需要使用更新的版本吗?如果是,哪些版本与HEIC兼容呢?


那个ImageMagick版本是PHP正在使用的吗? - Cole Tobin
@ColeJohnson 是的 - 我已经编辑了问题,显示PHP正在使用的版本。 - Terence Eden
根据ImageMagick的更改日志,您需要7.0.8-25版本才能使用ImageMagick 7或6.9.10-25版本才能使用Imagemagick 6。因此,您的版本太旧了。 - fmw42
1个回答

2
这是 PHP 中 EXIF 扩展的一个限制。目前,EXIF 扩展仅支持读取两种文件格式:
  • JPEG
  • TIFF
作为 PHP 中 EXIF 的扩展维护者,我无法确定是否有计划支持更多格式,因为只有最近在错误跟踪器上发布了一个报告,涉及支持 PNG 图像(从 PNG 规范的 1.5 版本开始)。
我建议您在 PHP 错误跟踪器上将其报告为“功能请求”,以便进行跟踪(如果您可以提供详细信息或甚至实验性实现,将有助于更快地将其推入 PHP)。目前唯一的选择是将图像转换为 JPEG 或 TIFF 以使其可被 EXIF 扩展读取。

你能提供一下关于这个的最新情况吗? - FDMS

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