Lightroom SQLite 数据库二进制 XMP 格式
Lightroom SQLite database binary XMP format
Lightroom 目录是一个 SQLite 数据库。一些元数据值存储在 BLOB 数据类型的 Adobe_AdditionalMetadata.XMP
列下。
当我保存这个 blob 时,它是一些我不知道如何转换to/from 可编辑格式的二进制文件。
根据 documentation,xmp 文件具有 XML 格式
Here 是我数据库中此类 blob 的示例
我在 Lightroom 论坛上被告知,此类列使用非标准 SQLite 压缩模块。
这是使用非标准压缩模块重新编译的 SQLite Windows 二进制文件的 link: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()
函数读取它。
那是因为上面 link 中的库仅修复了 uncompress()
函数。我也在努力修复 compress()
函数
Lightroom 目录是一个 SQLite 数据库。一些元数据值存储在 BLOB 数据类型的 Adobe_AdditionalMetadata.XMP
列下。
当我保存这个 blob 时,它是一些我不知道如何转换to/from 可编辑格式的二进制文件。
根据 documentation,xmp 文件具有 XML 格式
Here 是我数据库中此类 blob 的示例
我在 Lightroom 论坛上被告知,此类列使用非标准 SQLite 压缩模块。
这是使用非标准压缩模块重新编译的 SQLite Windows 二进制文件的 link: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()
函数读取它。
那是因为上面 link 中的库仅修复了 uncompress()
函数。我也在努力修复 compress()
函数