You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP Imagick从EXIF数据中提取ImageWidth等指定属性值

问题解答

如何提取指定EXIF属性值

Imagick扩展提供了两种无需遍历的精准取值方式:

方法1:直接调用内置属性读取方法

使用Imagick::getImageProperty()方法可直接读取指定EXIF字段,所有EXIF字段的键名统一带exif:前缀:

$image = new Imagick($temp);
// 读取宽度,属性不存在时返回默认值0
$imageWidth = $image->getImageProperty('exif:ImageWidth') ?: 0;
// 读取高度,属性不存在时返回默认值0
$imageHeight = $image->getImageProperty('exif:ImageLength') ?: 0;

方法2:从已获取的EXIF数组中直接取值

你已经通过getImageProperties()拿到了完整EXIF数组,直接用带前缀的键名取值即可,推荐用null合并运算符做容错处理:

$exifArray = $image->getImageProperties();
$imageWidth = $exifArray['exif:ImageWidth'] ?? 0;
$imageHeight = $exifArray['exif:ImageLength'] ?? 0;

为什么高度对应的字段是ImageLength

这是EXIF标准的统一命名规则,属于历史规范沿用:
EXIF协议制定时,将图片水平方向的像素数量定义为ImageWidth,垂直方向的像素行数量定义为ImageLength,所有符合EXIF标准的拍摄设备、处理工具都会遵循该命名规则存储图片高度。

注意:如果需要匹配用户实际看到的显示尺寸,建议同时读取exif:Orientation字段,当该字段值为5/6/7/8时,说明图片存在旋转,需要将宽高值互换后使用。

内容的提问来源于stack exchange,提问作者pjk_ok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:30:05