使用 PHP 从 HEIC 照片中读取 EXIF 数据

Read EXIF data from HEIC photo using PHP

我想从 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 一起使用?

这是 PHP 的 EXIF 扩展中的一个限制。目前 EXIF 扩展只能读取两种文件格式:

  • JPEG
  • TIFF

作为 PHP 中 EXIF 的扩展维护者,我不能说有支持更多格式的具体计划,因为最近才在错误跟踪器上发布了一份关于支持 PNG images(从 PNG 规范的 1.5 版开始)。

我对您的建议是在 PHP 错误跟踪器上将其作为 "Feature Request" 报告,以便对其进行跟踪(如果您可以提供详细信息甚至是实验性实施,将会有所帮助将其推入 PHP 更快)。目前唯一的选择是将图像转换为 JPEG 或 TIFF 以使其可被 EXIF 扩展名读取。