LXF170:Фотоменеджер digiKam
Olkol (обсуждение | вклад) (→Обзор архитектуры) |
Olkol (обсуждение | вклад) (→Подготовка и реализация) |
||
Строка 134: | Строка 134: | ||
~>cat /home/test1/digikam_owner | ~>cat /home/test1/digikam_owner | ||
− | #! /bin/bash | + | #! /bin/bash |
if [ -d “/home/test1/digikam_owner_lock” ] | if [ -d “/home/test1/digikam_owner_lock” ] | ||
Строка 152: | Строка 152: | ||
~>cat digikam_launcher | ~>cat digikam_launcher | ||
− | #! /bin/bash | + | #! /bin/bash |
xhost local:test_1 | xhost local:test_1 |
Текущая версия на 03:41, 17 ноября 2018
|
|
|
Содержание |
[править] Управление изображениями
Марко Фиоретти объясняет, как эффективно раскидать на всех управление большой коллекцией цифровых фотографий.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Благодаря цифровым камерам и смартфонам сегодня даже в небольшой семье, члены которой не испытывают большого интереса к фотографии, каждый месяц появляется несколько сотен новых снимков. Хранить тысячи фотографий разбросанными по разным устройствам или сваленными без разбора в одну-две папки – это все равно что не иметь их вовсе. Коллекциями фото удобно и приятно пользоваться только тогда, когда их легко найти, фотографии снабжены комментариями, а плохие или почти одинаковые снимки удалены. Но чтобы этого добиться, может потребоваться очень много времени, если не разделить нагрузку.
Мы расскажем о среде совместной работы над фотографиями на базе digiKam, которая используется в основном для следующего сценария: есть семья или группа людей, которые хотят сформировать, классифицировать, изменять и поддерживать одну большую общую коллекцию цифровых фотографий на своих локальных компьютерах или в локальной сети. Предложенный метод несовершенен, но у него есть преимущества:
» у каждого участника могут быть и личные альбомы digiKam;
» все функции digiKam доступны всем пользователям;
» все действия максимально автоматизированы;
» все участники могут размещать необработанные фотографии в общем альбоме;
» каждый участник может работать с любого компьютера из дома или – при правильных настройке и ширине канала – удаленно.
Но описанная ниже процедура настройки и использования digiKam – только часть задачи, не первая и даже не главная. Другие части задачи – понимание ряда общих концепций, тщательное планирование и главное – стремление каждого участника пользоваться этим методом на практике. Пожалуйста, наберитесь терпения: общую картину описывать дольше, чем ее реализовать, но если не сделать этого, все дальнейшее утрачивает смысл.
С технической точки зрения, основных требований всего два. Первое – все участники должны пользоваться одной и той же версией digiKam. Добиться этого непросто, так как на практике придется требовать, чтобы у всех участников был один и тот же дистрибутив GNU/Linux и чтобы они обновляли его одновременно. Однако избежать этого никак нельзя, так как при автоматической обработке одних и тех же метаданных разными версиями digiKam могут возникать проблемы.
Второе требование – хотя бы один участник должен знать Linux достаточно хорошо, чтобы выполнять некоторые административные действия в командной строке; писать код не придется, но придется работать вне digiKam, набирая команды в командной строке и создавая простые скрипты. Это обязательно, т. к. некоторые из этих команд или их параметров зависят от используемого дистрибутива (дистрибутивов) Linux, их конфигурации и структуры домашней локальной сети. Из-за необъятного количества сочетаний мы просто не смогли бы подробно описать все возможные наборы команд, даже не будучи ограничены четырьмя страницами. Однако мы сообщим достаточно подробностей для того, чтобы вы легко нашли подходящую для своей конфигурации документацию.
Немного поиграем в адвоката дьявола: уверены ли вы и ваша «команда», что вам это нужно? Ведь digiKam изначально не предназначался для командной работы, и таким скорее всего и останется. Потому мы и сказали, что предлагаемый метод несовершенен. Его относительно просто реализовать и использовать, и он позволяет участникам совместно пользоваться всеми возможностями digiKam в объеме, более чем достаточном для многих групп. В то же время он не может быть полностью прозрачным для конечных пользователей, и если вам чего-то не хватит, придется его расширять.
Поэтому если вы и ваша группа хотите только поместить в общий доступ и, возможно, классифицировать по тэгам или дате один большой набор готовых фотографий, то digiKam, возможно, не лучшее решение. Любая из программ, представленных в нашем Сравнении онлайн-менеджеров фотогалереи в LXF163, прекрасно справится с этой задачей в многопользовательском режиме без дополнительной настройки.
[править] Введение в DAM в фотографии
DAM (Digital Assets Management – управление цифровыми ресурсами) – общий термин для правил и лучших подходов, которым нужно следовать при управлении сложными коллекциями цифровых файлов. По части фотографий DAM касается форматов и имен. Нужно выбрать правильный формат (форматы), в которых должны храниться обработанные фотографии. В большинстве случаев подходят PNG или JPEG. Сложнее с именами. Любая общая коллекция фотографий останется, или станет, бесформенной грудой, если участники не придерживаются одних и тех же имен для определенных вещей. Например, все участники обязаны применять одинаковую схему именования для всех альбомов и фотографий, независимо от того, от какого пользователя или с какой камеры, смартфона или сканера они были получены! Большинство фотографов использует даты и в именах файлов, и в именах альбомов (например, ГГГГMMДД_отпуск_турбаза в именах альбомов) – это единственный способ гарантировать, что все фотографии останутся в правильном порядке, даже если объединить альбомы или добавить файлы; при этом уцелеет поиск по тэгам.
Кстати о тэгах! Хорошие имена и иерархия тэгов делают работу с набором фотографий гораздо удобнее. Потратьте немного времени и продумайте свое дерево тэгов и соглашения по их использованию, или хотя бы представьте, как они должны помочь вам. Всячески избегайте синонимов! Как пометить фотографии с событиями из жизни свободного ПО? “Free Software”, “Free SW”, “FOSS” или как-то еще? Подойдет любой вариант, если у всех он будет один и тот же!
Конечно, исчерпывающую структуру тэгов для всех фотографий, которые вы и ваши партнеры снимете за всю жизнь, сразу придумать невозможно. Тем не менее, чем больше вы предварительно определите на бумаге, тем меньше нудных действий вам придется повторять в будущем. В руководстве по digiKam есть прекрасный раздел о DAM. Пожалуйста, прочтите его внимательно, прежде чем претворять в жизнь то, что узнаете на этом уроке.
[править] Обзор архитектуры
Некоторые свойства (и ограничения) digiKam оказывают прямое влияние на совместную работу через эту программу. Первое – понятия коллекций и альбомов. У каждого пользователя digiKam может быть несколько независимых коллекций изображений. Каждая коллекция может находиться на собственном устройстве хранения данных, будь то домашний каталог, внешний USB-диск или удаленный раздел. Внутри коллекции изображения объединяются в альбомы и подальбомы, которым соответствуют обычные каталоги в файловой системе.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Для работы digiKam нужны две базы данных: одна для данных digiKam, которые могут быть общими или относящимся к изображениям, и вторая – для хранения миниатюр изображений. По умолчанию это базы данных формата SQLite в двух файлах: digikam4.db и thumbnails-digikam.db. Альтернативой могут быть реляционные базы данных MySQL с теми же именами. Базы данных SQLite по умолчанию локальные и недоступны с других компьютеров или учетных записей. В отличие от них, базы данных MySQL могут жить на удаленном компьютере. Какой бы формат ни использовался, у пользователя digiKam может быть сколько угодно коллекций фотографий, но лишь несколько баз данных.
Местоположение коллекции может стать потенциальным источником неприятностей, когда digiKam используется с различных компьютеров. В именах коллекций используется уникальный идентификатор (UUID) физического устройства, на котором они расположены, или, когда он недоступен (например, для RAID, удаленных каталогов и т. п.), только путь до их каталога. Поэтому в общем случае местоположение коллекции, сохраняемое в базе данных digiKam, может быть корректным только в том случае, если digiKam запускается на заданном компьютере и/или для заданной учетной записи.
А есть еще и метаданные (см. врезку). digiKam умеет хранить их не только в своей внутренней базе данных, но и в самих фотографиях или в отдельных, так называемых приставных [sidecar] файлах. Если хранить метаданные только в базе данных, digiKam будет работать гораздо быстрее. Если хранить их в файлах, они останутся доступными, если вы однажды откажетесь от digiKam или его база данных будет повреждена из-за программных или аппаратных ошибок. К сожалению, из-за нехватки ресурсов, вариантов дизайна и неисправленных ошибок синхронизация тэгов в этих трех местах автоматически не поддерживается (даже для одного пользователя).
В digiKam также много функций, которые для простоты можно назвать не связанными с базой данных. Это фильтры и операции для ручной обработки изображений – от удаления красных глаз до обрезки, поворота, визуальных эффектов и т. д.
Ограничение на одну базу данных на пользователя и проблема с синхронизацией метаданных – два очень важных ограничения совместной работы с digiKam. Большинство приемов работы с «несколькими digiKam», которые можно найти в Сети, относятся к другой ситуации, когда только один пользователь пытается получить доступ ко всем и только своим собственным коллекциям фотографий digiKam с разных компьютеров в разные моменты времени.
Теоретически можно «схитрить» несколькими способами – например, задав в настройках двух экземпляров digiKam одну и ту же базу данных MySQL с одними и теми же логином и паролем. Но так мы не поможем людям, которые хотят иметь и приватные коллекции, и это рискованный способ, способный завести в тупик. digiKam не предназначен для поддержки одновременного доступа – возможно, с разными пользовательскими настройками – к одному набору фотографий, баз данных и метаданных. Реализация этой поддержки пока не запланирована, и нет гарантии, что любая «хитрость» на этой стадии продолжит работать в следующей версии. Поэтому мы предложим другой, не идеальный, но более безопасный способ.
[править] Критерии рабочего процесса
Основные критерии совместного рабочего процесса на базе digiKam должны быть таковы:
1 Выполнять максимально возможный объем действий вне digiKam.
2 Разрешить компьютеру делать это автоматически.
3 Насколько это возможно, отделить операции, не связанные с базой данных (отбраковка, удаление красных глаз, редактирование), от прочих (тэги, рейтинг, комментарии).
4 Сначала выполнять операции, не связанные с базой данных. Возможное исключение – геотэги. Их можно проставить автоматически в самом начале вне digiKam (см. ниже).
Назначение двух последних критериев сейчас проясним. А первые два должны быть понятны: максимальная автоматизация действий с помощью скриптов, особенно некоторых начальных скучных действий, экономит массу времени, уменьшает количество ошибок и позволяет обойти ограничения digiKam. И вот как реализовать это на практике. Вы можете адаптировать этот метод к своим потребностям, если соблюдаются приведенные выше критерии и если каждый участник работает с общими альбомами следующим образом:
1 Операции, не связанные с базой данных, вне digiKam: 1. загрузка изображений из камеры во временную папку; 2. резервное копирование в другой каталог; 3. переименование; 4. простановка геотэгов, если необходимые данные доступны; 5. конвертация фотографий в формат с потерями данных.
2 Ручные операции, не связанные с базой данных, в digiKam: 1. отбраковка – чем раньше вы избавитесь от плохих фотографий, тем лучше; 2. редактирование – удаление красных глаз, визуальные эффекты, коррекция контраста и т. д.; 3. перемещение новых фотографий в их окончательное местоположение внутри общедоступной коллекции digiKam; 4. редактирование в digiKam, связанное с базой данных – переименование альбомов, затем проставление тэгов, оценок и комментирование фотографий.
Все операции этапа 1 могут и должны выполняться автоматически путем запуска одного скрипта оболочки, что могут все участники команды. Первые два шага могут выглядеть примерно так:
CAMERA_NAME=$1
USERNAME=`whoami`
find /media/$CAMERA_NAME -type f -iname “*jpg” -exec cp -p {} $TEMPFOLDER/$USERNAME/
cp -r -p $TEMPFOLDER/$USERNAME/* $BACKUP_FOLDER/$USERNAME
Шаги 1.3 и 1.4 можно автоматизировать скриптами, о которых мы рассказывали в статьях «Exiftools: Фото по полочкам» (LXF143) и «Геотэги» (LXF112). Шаг 1.5 – задача для команды convert пакета Imagemagick, доступного во всех дистрибутивах Gnu/Linux. Три последних этапа не нуждаются в пояснениях. Разные участники команды могут работать на этапе 2 одновременно, в digiKam или любой другой программе для редактирования изображений. Это не проблема, потому что, во-первых, каждый загружает свои фотографии в собственный каталог ($TEMPFOLDER/$USERNAME/), и, во-вторых, не обрабатываются метаданные (за исключением геотэгов, которые не должны меняться). Этапы 3 и 4 нужно обязательно выполнять в digiKam!
Сейчас вы, конечно, думаете: «И в чем секрет? Как заставить все это работать для групп пользователей?» Секрет в том, что для этапов 3 и 4 создается специальный пользователь в Linux. Пользователь, единственной причиной существования которого является владение общей коллекцией, и единственный пользователь, который может изменять альбомы, фотографии в digiKam и прежде всего базу данных для этой коллекции. Другими словами, каждый участник команды может выполнять два первых этапа в любой момент в своей учетной записи Linux, даже если все остальные участники делают то же самое. Но для выполнения двух последних этапов он должен вызвать скрипт, который запускает digiKam от имени пользователя-владельца или выдает предупреждение или завершается, если такой экземпляр digiKam уже запущен.
У владельца будет только общая коллекция, альбомы которой (и, следовательно, все метаданные фотографий) будут доступны для чтения другим пользователям. Так мы сможем избежать коллизий, и каждый пользователь сможет иметь столько приватных коллекций, сколько захочет, и сможет просматривать и искать фотографии в общей коллекции в своей программе digiKam.
[править] Подготовка и реализация
Посмотрим, как настроить все это для двух пользователей. В объяснении ниже, test_1 – пользователь-владелец, которого нужно создать с нуля только для того, чтобы он был владельцем общей коллекции. Test_2 – любой из (уже существующих) обычных пользователей, которым эта коллекция должна быть доступна для чтения.
Временная папка должна быть доступна на чтение и запись пользователю test_1 и всем редакторам. Обычные пользователи могут хранить персональные коллекции digiKam в любом месте.
Папка с общей коллекцией (в наших примерах – /home/z/pictures) особенная по двум причинам. Во-первых, только у пользователя test_1 должно быть право изменения файлов и каталогов внутри этого каталога, но у редакторов должно быть право их просматривать. Это позволяет избежать случайного изменения или удаления фотографий при просмотре общей коллекции пользователями с их персональных учетных записей. Для этого можно либо сделать test_1 членом специальной группы, где не будет других пользователей, либо поиграть с настройками прав доступа по умолчанию. Чтобы узнать, как это сделать, ознакомьтесь с man-страницами команд umask и adduser, а также с SELinux и документацией по управлению пользователями своего дистрибутива.
Если вы работаете в сети, вы также должны предусмотреть, чтобы и временный каталог, и устройство, где хранится общая коллекция, были доступны всем пользователям, желательно по одному и тому же абсолютному пути. Для этого проще всего настроить общий ресурс NFS. Если путь почему-либо не может быть одинаковым для всех, нужно внести соответствующие изменения в скрипт для этапа 1. Теперь перейдем к базе данных. Если вы хотите использовать MySQL для общей коллекции, вот команды для создания соответствующих баз данных (выполнять их нужно от имени root):
[root ~]# mysqladmin create shared_digikam
[root ~]# mysqladmin create thumbnails_shared_digikam
[root ~]# mysql -u root
mysql> use mysql;
mysql> CREATE USER ‘test_1’@’localhost’ IDENTIFIED BY ‘digikam’;
mysql> grant all privileges on shared_digikam.* to ‘test_1’@’localhost’;
mysql> grant all privileges on thumbnails_shared_digikam.* to ‘test_1’@’localhost’;
mysql> exit;
Последний этап настройки владельца – настройка digiKam. Сразу после создания аккаунта test_1 откройте терминал, переключитесь на пользователя test_1 и запустите digiKam:
marco ~> su - test_1
Password:
[test_1 ~> digikam&
Так как это первый запуск digiKam для данного пользователя, откроется мастер. Укажите, что фотографии нужно хранить в /home/z/pictures и что нужно добавлять информацию в файлы. Затем введите подходящие параметры базы данных и создайте локальную семейную коллекцию в /home/z/pictures. В этот момент мастер запустит digiKam, которая загрузит все альбомы, уже имеющиеся в семейной коллекции. Прежде чем делать что-то еще, советуем зайти в Settings > Theme [Настройки > Тема] и выбрать тему, которую не выбрал ни один из других пользователей digiKam. Это не обязательно, но удобно, так как напоминает пользователям, что они запускают программу в режиме владельца, а не в обычном режиме.
Теперь можно сказать всем участникам, что они могут добавить новую семейную коллекцию в свои настройки digiKam. Каждый раз, когда они захотят просмотреть эту коллекцию из своего экземпляра программы, им придется выбрать пункт меню Album > Re-read metadata from images [Альбом > Перечитать метаданные изображений]. Избежать этого нельзя, если они хотят увидеть тэги и комментарии, добавленные в режиме владельца.
Вам также придется объяснить своим партнерам, как запустить digiKam в режиме владельца каждый раз, когда они будут добавлять, снабжать тэгами или оценивать фотографии в этой коллекции. Вкратце, вы должны создать простые скрипты, которые создают файл блокировки и запускают digiKam, затем настраивают все учетные записи (и компьютеры) с Linux, так что пользователи могут запустить этот скрипт (с командной строки или щелкнув по иконке на рабочем столе) с идентификатором пользователя test_1. Теоретически после нужной настройки команды sudo скрипты могут быть такими:
~>cat /home/test1/digikam_owner
#! /bin/bash
if [ -d “/home/test1/digikam_owner_lock” ]
do
echo “Warning: somebody else is already working in owner mode!”
exit
done
mkdir /home/test1/digikam_owner_lock
/usr/bin/digikam && rmdir /home/test1/digikam_owner_lock
~>cat digikam_launcher
#! /bin/bash
xhost local:test_1
sudo -u test_1 -- /home/test1/digikam_owner
Первый скрип выдает предупреждение и завершается, если каталог /home/test1/digikam_owner_lock существует. В противном случае он создает этот каталог, запускает digiKam и удаляет этот каталог после завершения работы digiKam.
На практике этот этап больше всего зависит от используемого дистрибутива, его настроек, ваших персональных предпочтений, привычек и уровня паранойи. Вам самим придется разобраться в том, что в вашем конкретном случае означает «запуск программы от имени другого пользователя», но это определенно можно сделать – и это все, что вам нужно.
[править] Альтернативный подход
Абсолютно другой подход, которым можно воспользоваться – запускать digiKam в режиме владельца в сеансе NX (подробности см. на www.nomachine.com) для пользователя test_1, это можно сделать даже с удаленного компьютера и/или компьютера с Windows.
Предложенный рабочий процесс отделяет от остальных действий все действия digiKam с общей коллекцией, требующие изменения базы данных и метаданных, передав их в особую учетную запись пользователя. В таком рабочем окружении пользователи могут просматривать и искать (но не изменять!) все альбомы и фотографии этой коллекции в своих экземплярах digiKam. Они могут загружать в свои базы данных любые метаданные, которые любой из них сохранил в этих фотографиях, работая с ними в режиме владельца. У пользователей также остается возможность в любое время делать все что угодно со всеми своими персональными коллекциями (и только с ними). Любая попытка (намеренная или нет) изменить семейную коллекцию завершится неудачей, потому что только у учетной записи владельца есть права доступа на записи в свои каталоги и возможность просмотра настоящей базы данных в digiKam.
Первое ограничение этого решения в том, что для изменения общей коллекции пользователи должны запускать еще один экземпляр digiKam. Кроме того, пользователи должны перезагружать метаданные вручную в своих экземплярах digiKam. Это небольшая цена, если подумать, сколько усилий она может сэкономить. Более значительный недостаток в том, что данные, которые digiKam не записывает в фотографии, например, заголовки и категории альбомов, останутся видимыми (и доступными) только при запуске digiKam в режиме владельца.
Большая это проблема или нет, зависит от того, как вы будете пользоваться digiKam. Если да, то есть нетривиальное, но осуществимое решение – написать дополнительные скрипты, которые периодически или прямо перед запуском digiKam копируют все эти данные из базы данных владельца в персональные базы данных. |