使用 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 扩展名读取。
我想从 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 扩展名读取。