首页 > 解决方案 > Lightroom SQLite 数据库二进制 XMP 格式

问题描述

Lightroom 目录是一个 SQLite 数据库。一些元数据值存储在Adobe_AdditionalMetadata.XMPBLOB 数据类型的列下。

当我保存这个 blob 时,它是一些二进制文件,我不知道如何转换为可编辑表单。

根据文档,xmp 文件具有 XML 格式

是我数据库中此类 blob 的示例

标签: sqlitereverse-engineeringxmplightroom

解决方案


我在 Lightroom 论坛上被告知,此类列使用非标准 SQLite 压缩模块。

这是使用非标准压缩模块重新编译的 SQLite Windows 二进制文件的链接:https ://drive.google.com/file/d/1EuSB8SrOA2nAhwTqjI3V1xK44IyxI9gt/view?usp=sharing

它可以提取xmp属性

select uncompress(xmp) from Adobe_AdditionalMetadata where id_local = 4539794;

但还不能写回来。

update Adobe_AdditionalMetadata
set xmp = compress('some valid xmp string value')
where id_local = 4539794;

它成功执行,但您将无法使用uncompress()函数读回它。

那是因为上面链接中的库只修复了uncompress()功能。我也在努力修复这个compress()功能


推荐阅读