登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  文章 >  软件教程

darktable 怎样为离线编辑创建本地副本

来源:17golang原创

时间:2026-10-30 18:15:16 173浏览 收藏

照片放在外置硬盘或 NAS 上时,直接拔掉存储设备会让原片暂时不可访问。darktable 的解决方案是为选中的照片创建 local copy:副本留在本机缓存目录,外置存储断开后仍可继续编辑;存储恢复后,再把本地 XMP 侧车同步回去并清理副本。

官方手册:https://docs.darktable.org/usermanual/development/en/

最短操作路径是:Lighttable 选中照片 → actions on selection → images → copy locally。完成后先看缩略图右上角的白色标记,再模拟断开外置存储确认照片仍能打开。

一、先确定要带走的编辑范围

打开 darktable 的 Lighttable 视图,按集合、胶卷或缩略图选择准备离线处理的照片。建议只选择本次旅途中确实要处理的一组,避免把整个图库都复制到本机。这里复制的是照片文件以及 darktable 需要的编辑关联信息,目标是让这批照片在原存储不可用时仍有工作副本。

选中后先检查缩略图数量和文件类型。需要保留的照片应处于明确的选中状态;如果误把不需要的照片一起选中,后面的 copy locally 会扩大本地缓存占用。

二、从 actions on selection 创建本地副本

在 Lighttable 中打开 actions on selection 模块,切换到 images 标签。找到 copy locally,执行一次即可。不要把这里的 copy 与 copy locally 混用:前者是把文件复制到指定文件夹,后者是登记为 darktable 的离线本地副本。

darktable Lighttable 中 actions on selection 的 copy locally 操作示意图
图1:操作示意图,展示 Lighttable 选中照片后在 images 标签执行 copy locally 的入口。

点击后,darktable 会把选中照片的本地副本放到 cache directory,而不是让读者手工猜测缓存路径。官方手册说明,本地副本的文件名包含原路径的 MD5 签名,并保留原始扩展名,因此不要直接改名或手动搬动缓存目录中的文件。

三、断开存储前核对可用状态

创建结束后回到缩略图区域,观察照片右上角是否出现白色标记。这个标记表示该照片存在 local copy;同时,darktable 会给这些副本加上 darktable|local-copy 标签,后续可以用标签快速筛选它们。

这一步不要只看“操作没有报错”。随机打开一张照片进入 Darkroom,确认编辑历史和预览仍可用,再断开外置硬盘或让 NAS 暂时不可达。如果照片仍能进入编辑视图,才说明离线工作路径已经建立。

darktable 本地副本白色标记与 local-copy 标签的结果示意图
图2:结果示意图,展示离线副本的白色标记、local-copy 标签和可继续编辑的状态。

四、存储恢复后同步并清理

重新连接原来的外置存储后,darktable 会在启动时自动同步本地 XMP 侧车;也可以在 actions on selection 的 images 标签中选中这些照片并点击 resync local copy。该动作会把本地副本的 XMP 侧车同步到外部存储,然后移除本地副本。

如果本地副本已经修改,但外部存储仍不可访问,darktable 不会删除这个本地副本。遇到这种情况不要反复点击清理按钮,先恢复存储连接,确认原片和 XMP 可写,再执行同步。同步后重新打开一张照片,检查编辑历史是否保留,最后再用 darktable|local-copy 标签确认待清理数量。

常见问题与边界

本地副本和普通文件复制有什么区别?

普通 copy 是把文件复制到指定文件夹;local copy 是 darktable 为离线访问维护的副本,并配合 XMP 同步、白色状态标记和专用标签。需要在 darktable 内继续编辑并回写原存储时,应使用 copy locally。

为什么外置硬盘未连接时不能立刻 resync?

resync local copy 需要把本地 XMP 写回外部存储。目标存储不可访问时没有安全的同步目标,因此应保持本地副本,等设备恢复后再同步。

最后验收清单

  • 选中的照片右上角出现白色本地副本标记。
  • 外置存储暂时不可用时,照片仍能在 Darkroom 打开并继续编辑。
  • 存储恢复后使用自动同步或 resync local copy,确认 XMP 已回到原存储。
  • 同步完成后再确认 local copy 副本已被清理。
声明:本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>