darktable 怎样把编辑历史写入 XMP 边车文件
来源:17golang原创
时间:2026-10-30 17:43:36 455浏览 收藏
在 darktable 里,编辑历史不是写回原始 Raw 文件,而是由数据库和 XMP 边车文件共同保存。要让编辑历史随照片一起迁移,打开 Preferences > Storage > XMP sidecar files,把 Create XMP files 设为 On import 或 After edit。如果已经导入过照片,选 After edit 也可以在下一次编辑或添加标签时生成边车文件。
官方地址:https://docs.darktable.org/usermanual/development/en/
最稳妥的做法是选择After edit或On import,再把原始照片和同名 XMP 一起备份。不要只复制数据库,也不要把“看不到保存按钮”理解成编辑没有写入。
先分清数据库与 XMP 的职责
darktable 以非破坏方式编辑照片:原始 Raw 文件保持不变,编辑步骤、标签和部分元数据写入数据库,同时可以写入照片旁边的 XMP 文件。第一次导入图片时,若边车写入没有被关闭,通常会看到类似 photo.raw.xmp 的文件。
边车文件的价值在于它能和原图一起复制、归档或迁移。数据库更适合当前库快速浏览;XMP 则是重建编辑历史的重要外部副本。两者不是简单的“谁都能随时覆盖谁”:照片已经进入当前库后,数据库记录通常优先于外部 XMP。
第一步:从 Storage 找到 XMP 写入开关
打开 darktable 的首选项,按下面的路径进入设置:
- 点击菜单中的
Preferences。 - 在左侧选择
Storage。 - 展开或定位
XMP sidecar files区域。 - 找到
Create XMP files下拉框。

这是一张原创界面说明图,不是 darktable 实际运行截图。读者只需要确认自己处于 Storage,并能看到 Create XMP files,就找到了正确入口。
第二步:按工作方式选择首次写入时机
下拉框通常有三个方向:
| 选项 | 什么时候写入 | 适合场景 |
|---|---|---|
Never | 不写 XMP 边车 | 仅适合明确不需要边车的测试环境 |
On import | 导入图片时就创建 | 希望从导入开始就有可备份文件 |
After edit | 首次编辑或添加标签后创建 | 想减少无编辑照片旁的边车数量 |
普通工作库建议使用 On import 或 After edit。如果你刚发现设置是 Never,改成 After edit 后不要只查看旧照片目录;先对一张照片做一次明确编辑或添加一个标签,再检查对应位置。
第三步:完成一次编辑并确认边车更新
在暗房视图中选择一张照片,调整一个处理模块,例如曝光或裁剪,然后观察历史栈。darktable 会自动同步编辑,不需要寻找单独的“保存编辑历史”按钮。Storage 页面中的 auto-save interval 还能控制暗房处理历史的自动保存间隔;设为零则关闭自动保存。

这张图同样是原创说明图,不是运行证据。实际确认时,重点看三件事:历史栈里有刚刚的处理动作;照片旁出现与原文件同名的 .xmp 文件;备份目录可以同时找到 Raw 与 XMP。使用栅格蒙版等逐像素编辑数据时,darktable 还可能额外生成 DTDATA 边车文件。
没有生成或重新导入不一致时怎么排查
- 先看写入选项。回到
Preferences > Storage > XMP sidecar files,确认不是Never,并确认自己已经完成一次编辑或添加标签。 - 再看文件夹权限。XMP 会和原图放在一起;如果原图目录只读,设置正确也可能无法创建或更新边车。换到可写目录做一次小范围排查。
- 外部修改要开启启动扫描。如果 XMP 被其他程序更新,打开
Look for updated XMP files on startup,下次启动时让 darktable 检查更新,并在提示中选择重新加载或用数据库覆盖。 - 理解数据库优先级。照片已经导入当前库后,直接用其他软件改 XMP,不代表当前界面会立刻变化;下一次同步还可能把数据库内容写回 XMP。需要外部边车生效时,使用重新导入或启动扫描提供的更新选择。
最后按 Raw 与 XMP 成对备份
备份时把原始照片、同名 XMP,以及实际存在的 DTDATA 一起复制。只备份导出的 JPEG 不能恢复完整编辑历史,只备份数据库又会让照片脱离原库后难以重建。迁移到另一份 darktable 图库前,也要注意每个编辑副本可能有带编号的边车文件,例如同一原图的不同 duplicate 会对应不同的文件名。
可以用下面的清单做收尾:
Create XMP files不是Never;- 已经完成过一次编辑或添加标签;
- 原图目录允许创建和更新文件;
- 备份时 Raw、XMP、必要的 DTDATA 同步存在。
相关问题
编辑历史会写回原始 Raw 文件吗?
不会。darktable 以非破坏方式处理原始图像,编辑历史主要保存在数据库和边车文件中。
为什么改了外部 XMP,darktable 里没有马上变化?
当前图库中的数据库记录可能优先。开启启动时查找更新的 XMP,或按重新导入流程让 darktable 选择重新加载边车。
每张照片都会生成 DTDATA 吗?
不会。DTDATA 主要在需要保存逐像素编辑数据时出现,普通照片通常只有 XMP 边车。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
173 收藏
-
364 收藏
-
243 收藏
-
197 收藏
-
407 收藏
-
491 收藏
-
268 收藏
-
418 收藏
-
126 收藏
-
207 收藏
-
473 收藏
-
109 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习