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

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

摄影师或设计师有时会将图片标题、关键词等元数据直接写入图片文件。在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。