PHP读取Photoshop嵌入图片文字信息的方法
摄影师或设计师有时会将图片标题、关键词等元数据直接写入图片文件。在PHP开发中,可以利用内置函数自动读取这些由Photoshop嵌入的信息。
实现原理与目标
Photoshop等图像处理软件在保存JPEG图片时,通常会将IPTC信息(如标题、描述、关键词)写入文件的 APP13 标记段。PHP提供了两个关键函数来处理这一过程:
getimagesize():除了获取图片尺寸外,其第二个参数可以返回图片的文件头信息及各种标签,其中["APP13"]包含了原始的IPTC数据。iptcparse():将APP13的二进制原始数据解析为可读的数组结构,键名遵循标准IPTC格式(如2#105代表标题)。
具体操作步骤
第1步:获取图片元数据块
首先调用 getimagesize() 获取指定路径图片的信息,并将结果存入变量以提取APP13块。
$image_info = array();
$size = getimagesize('图片文件.jpg', $info);
第2步:判断并解析IPTC数据
检查返回的 $info 数组中是否存在 'APP13' 键。如果存在,说明该图片包含Photoshop写入的IPTC信息,接着使用 iptcparse() 将其转换为数组。
if(isset($info['APP13'])) {
$iptc = iptcparse($info['APP13']);
第3步:整理并输出关键文字信息
遍历解析后的IPTC数组,合并同一字段的不同部分(有些长文本可能分块存储),最终构建完整的 $image_info 关联数组便于后续使用。
foreach (array_keys($iptc) as $s) {
$c = count($iptc[$s]);
for ($i = 0; $i < $c; $i++) {
@$image_info[$s] .= $iptc[$s][$i];
}
}
}
print_r($image_info);
运行上述代码后,$image_info 将包含类似 2#105 (标题)、2#120 (描述/注释)、2#080 (作者) 等键值对,可直接用于网页展示或数据库索引。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









