База данных Lightroom SQLite в двоичном формате XMP - PullRequest
0 голосов
/ 10 июля 2020

Каталог Lightroom - это база данных SQLite. Некоторые значения метаданных хранятся в столбце Adobe_AdditionalMetadata.XMP, который является типом данных BLOB.

Когда я сохраняю этот большой двоичный объект, это какой-то двоичный файл, который я не знаю, как преобразовать в / из редактируемой формы .

Согласно документации , файл xmp имеет формат XML

Здесь пример такого блоба из моей базы данных

1 Ответ

0 голосов
/ 10 июля 2020

Мне посоветовали на форумах 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(), а также

...