Если по крайней мере некоторая каталожная информация записана в изображение, вы можете повторно подключить файл к вашей базе данных. В принципе это может быть один уникальный идентификатор.
Это спасает вас от:
- Вы переместили или переименовали файл изображения.
Если вы можете записать в файл дополнительную информацию - ключевые слова, подписи - тогда вы будете спасены от:
- Ваша база данных повреждена.
- Вы обновили свой компьютер, и ваша программа базы данных там не работает.
Третий вариант - записать метаданные в файлы боковой панели. Обычно эти файлы имеют то же имя, что и основной файл, но имеют другой суффикс.
- Это делает все ваши данные восстанавливаемыми в случае сбоя базы данных.
Недостатки хранения данных на изображении:
Запись в исходные файлы может повредить файл. Большинство форматов RAW достаточно хорошо понятны, чтобы по крайней мере идентифицировать и заменить строки метаданных строкой одинаковой длины. Если вы скажете своей камере поставить строку авторского права
Copyright 2018 J. Random Shutterbug Image XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
Тогда, пока ДАМ сохраняет эту строку на той же длине, что и у вас.
Сохранение всех метаданных (или столько, сколько вы можете) в исходных изображениях обеспечивает очень медленный доступ. Ваша программа должна прочитать хотя бы первые несколько блоков каждого изображения.
Запись данных занимает много времени.
Некоторые форматы файлов не поддерживают метаданные.
Некоторые форматы файлов (Photoshop PSD) отмечены для искажения метаданных.
Сбой в процессе записи может повредить файл изображения. Альтернатива, написание нового файла, а затем замена старого, требует, чтобы весь файл был и прочитанным, и записанным, а не просто его частью. Это имеет серьезные проблемы с производительностью.
Недостатки баз данных
Базы данных быстрые, но они блобные, а вы пишете в середину больших двоичных данных. Если реализация базы данных является надежной, беспокоиться не о чем. Но на жестких дисках есть ошибки, и одна ошибка может сделать базу данных частично или полностью непригодной для использования. Хороший дизайн базы данных имеет встроенную избыточность, поэтому вы можете восстанавливать / восстанавливать.
Базы данных часто являются собственностью. Данные могут быть сжаты для скорости. Получить ваши данные может быть сложно. (Проблема для людей, использующих диафрагму)
Базы данных часто оптимизируются по-разному. В целом надежность достигается за счет производительности и сложности. Один компромисс - сначала записать все изменения в файл транзакции (быстро ...), а затем фоновый процесс выполняет обновление базы данных в фоновом режиме.
Недостатки колясок
Вы должны прочитать zillion файлов при запуске.
Если вы выполняете групповую смену (добавьте ключевое слово «Италия» ко всем 3000 снимкам летнего отпуска), программа каталога откроет, отредактирует и запишет 3000 файлов.
Если вы переименуете файл и тоже не переименуете файл sidecar, ваши метаданные больше не будут связаны с вашим изображением.
Лучшая практика
Мнение только здесь: Извините.
- Требуется уникальный тег ресурса, который находится на изображении. Это может быть фактический тег, подобный упомянутому выше авторскому праву, или это может быть производный тег из информации на изображении. Это может быть отметка времени EXIF (Не уникально - несколько снимков в секунду, несколько камер.) Если ваша программа читает основные записи, лучше всего выбрать модель камеры + серийный номер камеры + метка времени + сотые доли секунды.
- Вам нужна база данных для скорости. Он, конечно, имеет уникальный идентификатор
- Вам нужны коляски для восстановления базы данных и переносимости данных. У них есть уникальный идентификатор.
Если база данных дает сбой, ее можно восстановить из коляски.
Если коляска повреждена, ее можно восстановить из базы данных.
Если изображение переименовано, идентификатор можно использовать для его повторного подключения к коляске и для исправления базы данных.
Чтобы сделать это, вам нужно использовать много временных меток. Если коляска более поздняя, чем последняя отметка времени в записи базы данных, то коляска является официальной записью.
Учитывая относительно хрупкую природу необработанных файлов, рекомендуется использовать систему, которая записывает ноль или один раз в файл Raw. Exif
Коляски не нужно обновлять в режиме реального времени. Отличный способ сделать это - каждый раз, когда база данных вносит изменения в запись:
- Создайте новую запись, которая дублирует старую запись в базе данных.
- Внести изменения в новую запись.
- Новая запись помечена, "не записано в коляску"
- Старая запись помечена как "устаревшая"
- Другой поток записывает файлы коляски, записывая новый, затем удаляя старый (или переименовывая новый в имя старого).
- Периодически вы запускаете очистку базы данных, удаляя устаревшие записи старше X дней. Это дает вам возможность откатить изменения.
Это не завершено: оно не решает проблему неразрушающего редактирования. Многие программы теперь позволяют создавать несколько изображений из одного мастер-файла и не создают новое растровое изображение, а представляют собой файл с серией инструкций о том, как сделать изображение из мастер-файла. AFAIK все такие методы являются собственностью. Это приводит к затруднениям, так как приложения, которые хорошо справляются с отслеживанием метаданных, могут не справиться с неразрушающим редактированием. Это может иметь решающее значение, если вы обрезаете человека по изображению.
Обходной путь - вы всегда выписываете новое растровое изображение из серьезного редактирования. В идеале у вас есть скрипт, который ищет новые NDE и записывает изображение на его основе, копируя метаданные из мастера и в какой-то момент вызывая его для просмотра модов в метаданных.