PHP读取Photoshop嵌入图片文字信息的方法

陆景行
陆景行
发布时间:2026-10-14 | 5人浏览过
原创

摄影师或设计师有时会将图片标题、关键词等元数据直接写入图片文件。在PHP开发中,可以利用内置函数自动读取这些由Photoshop嵌入的信息。

实现原理与目标

Photoshop等图像处理软件在保存JPEG图片时,通常会将IPTC信息(如标题、描述、关键词)写入文件的 APP13 标记段。PHP提供了两个关键函数来处理这一过程:

  1. getimagesize():除了获取图片尺寸外,其第二个参数可以返回图片的文件头信息及各种标签,其中 ["APP13"] 包含了原始的IPTC数据。
  2. 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 (作者) 等键值对,可直接用于网页展示或数据库索引。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表