为什么会有 .xmp 文件
RAW 文件(.NEF、.CR3、.ARW、.RAF 等)是各相机厂商的私有格式。Adobe 文档说明:对这类文件,Lightroom Classic 为避免损坏文件,不把 XMP 写进原图,而是写到单独的附属文件;JPEG、TIFF、PSD、DNG 则直接写在文件内部(Adobe:Lightroom Classic 元数据基础)。
XMP 规范第 3 部分(2020 年 1 月)写明:要找外部 XMP,就在同一目录里找与主文件同名、扩展名为 .xmp 的文件,并称之为 sidecar XMP 文件(第 3 部分 PDF)。Lightroom 和 Camera Raw 的做法是 DSC_0512.NEF 旁边放 DSC_0512.xmp。darktable 把原扩展名留在文件名里(IMG_0001.CR3.xmp),导入时也会读 Lightroom 那种名字。两者只靠文件名配对,在修图软件之外单独改名就会对不上。
哪些软件会写 XMP
下面四行都能对上现行手册,或对上我们实际跑过的命令。表里没有的软件,不代表它从不写 XMP,只是这一页不去断言。
| 软件 | XMP 写到哪里 | 文档怎么说 |
|---|---|---|
| Lightroom Classic | 专有 RAW 旁边的 .xmp。JPEG、TIFF、PSD、DNG 则把 XMP 写进文件内部。 | Adobe:为避免损坏文件,不把 XMP 写进专有 RAW(Lightroom 元数据)。只有打开“自动将更改写入 XMP”,或执行“将元数据存储到文件”,才会出现附属文件;否则调整只在 .lrcat 目录里。15.0(2025 年 10 月)起,较重的调整还可能另存 .acr(XMP 与 ACR)。 |
| Adobe Camera Raw | Camera Raw 数据库或 .xmp 附属文件,在首选项里选。DNG 的设置写在 DNG 里,除非你改存附属文件。 | Adobe:附属文件与 RAW 同文件夹、同主文件名、扩展名 .xmp,也可以装 IPTC。如果一直存在数据库里,可以用“将设置导出到 XMP”拷出来(Camera Raw 设置存在哪)。 |
| darktable | 形如 IMG_0001.CR3.xmp 的附属文件(保留原扩展名),外加图库数据库。 | 5.6 手册:元数据、标签和完整编辑历史都在附属文件里;除非在首选项 → storage 关掉,否则首次导入就会生成(sidecar)。它会读 Lightroom 的 basename.xmp,但写出时用自己的命名(导入其他 sidecar)。 |
| ExifTool 13.55 | 你指定的 .xmp,或它支持的格式内部的 XMP。 | 下面的列表就是用这个版本写出来再读回来的。标签文档对应出现的组:XMP-exif、XMP-dc、XMP-tiff、XMP-xmp、XMP-xmpMM、XMP-crs、XMP-iptcCore(ExifTool XMP 标签)。 |
打开 .xmp:ExifTool 的实测输出
它是 XML。文本编辑器或浏览器都能打开数据包。要按字段看,用 ExifTool。2026 年 10 月 22 日我们用 ExifTool 13.55 写了一个附属文件,不是相机文件,再用 exiftool -a -G1 -s DSC_0512.xmp 读回来:
[File] FileType : XMP
[File] FileTypeExtension : xmp
[File] MIMEType : application/rdf+xml
[XMP-x] XMPToolkit : Image::ExifTool 13.55
[XMP-iptcCore] CreatorWorkEmail : lab@example.com
[XMP-crs] Exposure2012 : 0.35
[XMP-dc] Creator : CreatorPrivacyKit lab
[XMP-dc] Rights : Lab sample, not a real copyright notice
[XMP-dc] Subject : sidecar-test
[XMP-exif] GPSAltitude : 12 m
[XMP-exif] GPSLatitude : 10 deg 30' 0.00" N
[XMP-exif] GPSLongitude : 20 deg 15' 0.00" E
[XMP-tiff] Make : LabMake
[XMP-tiff] Model : LabModel
[XMP-xmp] CreatorTool : ExifTool 13.55
[XMP-xmp] Rating : 3
[XMP-xmpMM] HistoryAction : saved
[XMP-xmpMM] HistorySoftwareAgent : ExifTool 13.55
[XMP-xmpMM] HistoryWhen : 2026:10:22 12:00:00+08:00
[Composite] GPSLatitudeRef : North
[Composite] GPSLongitudeRef : East
[Composite] GPSPosition : 10 deg 30' 0.00" N, 20 deg 15' 0.00" E坐标是我们传入的 -XMP-exif:GPSLatitude=10.5 和 -XMP-exif:GPSLongitude=20.25,不是某张照片。ExifTool 把它们印成带半球的度分秒,并把工作邮箱存成 Iptc4xmpCore:CiEmailWork。文件大小和时钟行是实验机上的,这里略去。附属文件没有像素,打开它不会出现画面。
XMP 文件可以删除吗?
原图不会受损。会不会丢东西,取决于同样的数据是否还存在别处:
- 用 Lightroom Classic:目录是主存储。只要还留着 .lrcat,删掉附属文件通常不丢调整;换一套软件,或换一台没有这份目录的电脑,RAW 就会像没修过。
- Camera Raw 选了附属文件:首选项如果是 sidecar .xmp,这份文件就是调整记录。删掉之后,RAW 打开时不再带那些设置。如果首选项一直用 Camera Raw 数据库,.xmp 就未必是唯一一份。
- darktable:编辑历史也在图库数据库里。换电脑或重新导入时,靠的是 .xmp 把历史带过去。
- 发给别人时:对方只要成片,就不要附上 .xmp。对方需要你的调整,可以一起发,但先看下一节。
XMP 文件可能泄露什么
附属文件很容易和 RAW 一起打包,发出去了才想起来。Adobe 的命名空间说明写过:一个 XMP 包里,某个属性可以根本不出现。别人的文件里没有这一栏,只说明当时没写,不是规范禁止(XMP 命名空间)。下表是我们实验室文件里真实出现过的项,名称来自规范或 ExifTool 的标签表。
| 可能暴露什么 | 列表里的名字 | 这个名字从哪来 |
|---|---|---|
| 相机在哪,前提是软件把 GPS 抄进了附属文件 | XMP-exif GPSLatitude、GPSLongitude、GPSAltitude | 写在 exif 命名空间(http://ns.adobe.com/exif/1.0/)。我们的文件里是 10.5 / 20.25 / 12 米,是手工写入的,不是某张照片。 |
| 谁改过、什么时候改的 | XMP-xmpMM HistoryAction、HistorySoftwareAgent、HistoryWhen | Adobe:xmpMM:History 是一组高层操作的有序列表,由应用程序自己维护(XMP Media Management)。我们这条是 saved,软件是 ExifTool 13.55,时间 2026-10-22 12:00 +08:00。 |
| 第一个碰过这个文件的工具,以及星级 | XMP-xmp CreatorTool、Rating | Adobe:xmp:CreatorTool 是“已知的、第一个用来创建该资源的工具名称”(XMP 基本命名空间)。 |
| 作者名、权利声明、关键词 | XMP-dc Creator、Rights、Subject | 都柏林核心里 Adobe 列为常见子集的几项(命名空间概览)。 |
| 工作邮箱 | XMP-iptcCore CreatorWorkEmail | ExifTool 把它存成 Iptc4xmpCore:CiEmailWork。我们写入的是 lab@example.com。 |
| 抄进去的相机品牌和型号 | XMP-tiff Make、Model | 我们填了 LabMake 和 LabModel,好让这两行出现。真实附属文件可能是从相机抄来的。 |
| 一条曝光调整 | XMP-crs Exposure2012 | 命名空间 http://ns.adobe.com/camera-raw-settings/1.0/,是 ExifTool 写进文件的。我们的值是 0.35。 |
分享前如何清除 XMP
附属文件:最省事的办法是不发。我们在同一份实验室文件上接着跑了 exiftool -overwrite_original '-XMP-exif:GPS*=' DSC_0512.xmp。ExifTool 13.55 改写了文件,再用 exiftool -a -G1 -s DSC_0512.xmp 读一次,XMP-exif 那几行已经没有了。作者、权利声明、关键词、邮箱、Exposure2012、品牌、型号、CreatorTool、星级和三个 History 字段都还在。星号要用引号包住,否则 shell 会把它当成文件名通配。Lightroom 的元数据面板也能清字段;无论用哪种,清完都要再读一遍文件。
导出的 JPEG/PNG/WebP:导出图常常把 XMP 写在文件里面。CreatorPrivacyKit 元数据清除工具能看出还剩什么,并在浏览器里生成干净副本,文件不会上传。它处理的是导出的静图,不处理 RAW,也不处理 .xmp 附属文件本身。另见 图片里的 XMP 元数据 和 GPS 元数据。
不是 BIOS 里内存的 XMP
如果你要找的是 BIOS 或内存设置里的 XMP,那是英特尔用来给内存超频的 Extreme Memory Profile,和照片文件不是一回事(Intel:什么是 XMP)。
参考资料
- Adobe — XMP 规范第 3 部分(2020 年 1 月):同目录、扩展名 .xmp 的附属文件
- Adobe — XMP 规范目录(第 1–3 部分)
- ISO 16684-1:2019 — XMP 数据模型与序列化
- Adobe — XMP 基本命名空间(xmp:CreatorTool 与日期)
- Adobe xmp-docs — xmpMM:History
- Adobe — Lightroom Classic 元数据基础与操作
- Adobe — 把元数据存到外部附属文件(XMP 与 ACR)
- Adobe — Camera Raw 的设置存在哪里
- darktable 5.6 手册 — sidecar
- ExifTool 13.55 — XMP 标签名,以及本页的实测列表