ДРУГИЕ ОБЛАЧНЫЕ СЛУЖБЫ
Первые два сценария в этой главе довольно легко можно адаптировать для использования службы Microsoft OneDrive или Apple iCloud, так как они имеют ту же основную функциональность. Главное отличие заключается в соглашении об именовании и местоположении каталогов. И да, не забудьте, что OneDrive в одних контекстах имеет имя OneDrive (например, приложение, которое требуется запустить), а в других — имя SkyDrive (каталог в вашем домашнем каталоге). Однако все это легко поддается управлению.
№ 91. Создание слайд-шоу из фотопотока в облаке
Некоторые с удовольствием пользуются службой Photo Stream в iCloud, тогда как других раздражает ее стремление сохранить копии всех снимков, даже бросовых, сделанных мобильным устройством. Тем не менее возможность хранить фотографии в понравившейся облачной службе резервного копирования привлекает многих. Проблема, однако, в том, что эти файлы обычно скрыты — они глубоко зарыты в вашей файловой системе и не могут автоматически выбираться многими программами, показывающими слайд-шоу из фотографий.
Мы исправим эту ситуацию с помощью slideshow, простого сценария (представленного в листинге 13.6), который проверяет папку выгрузки фотографий, сделанных камерой, и отображает файлы, находящиеся в ней, уменьшая их до определенных размеров. Для достижения желаемого результата можно использовать утилиту display, входящую в состав ImageMagick (пакета мощных утилит, с которыми мы будем знакомиться в следующей главе). Пользователи OS X легко могут установить ImageMagick с помощью диспетчера пакетов brew:
$ brew install imagemagick −with-x11
ПРИМЕЧАНИЕ
Несколько лет назад компания Apple прекратила распространение X11, популярной графической библиотеки для Linux и BSD, со своей операционной системой. Чтобы использовать сценарий slideshow в OS X, в системе должен присутствовать пакет ImageMagick с библиотеками X11 и необходимыми для них ресурсами, для чего достаточно установить пакет XQuartz. Дополнительную информацию о пакете XQuartz и инструкции по его установке можно найти на официальном веб-сайте: https://www.xquartz.org/.
Листинг 13.6.Сценарий slideshow
··#!/bin/bash
··# slideshow — показывает слайд-шоу из фотографий, находящихся в указанном
··#·· каталоге. Использует утилиту "display" из пакета ImageMagick.
··delay=2·········· # Задержка по умолчанию, в секундах.
··psize="1200x900>" # Предпочтительные размеры для отображения.
··if [$# −eq 0]; then
····echo "Usage: $(basename $0) watch-directory" >&2
····exit 1
··fi
··watch="$1"
··if [! -d "$watch"]; then
····echo "$(basename $0): Specified directory $watch isn't a directory." >&2
····exit 1
··fi
··cd "$watch"
··if [$? -ne 0]; then
····echo "$(basename $0): Failed trying to cd into $watch" >&2
····exit 1
··fi
··suffixes="$(
file * | grep image | cut −d: −f1 | rev | cut −d. -f1 | \
····rev | sort | uniq | sed 's/^/\*./')"
··if [-z "$suffixes"]; then
····echo "$(basename $0): No images to display in folder $watch" >&2
····exit 1
··fi
··/bin/echo −n "Displaying $(ls $suffixes | wc −l) images from $watch "
··set −f; echo "with suffixes $suffixes"; set +f
··display −loop 0 −delay $delay −resize $psize −backdrop $suffixes
··exit 0
Сценарий в листинге 13.6 потребовал от нас не очень много усилий, если не считать изматывающего процесса изучения всех аргументов ImageMagick, необходимых, чтобы добиться желаемого эффекта с помощью команды display. Вся глава 14 будет посвящена ImageMagick, поскольку инструменты, входящие в состав пакета, чертовски полезны. С помощью этого сценария вы можете подготовиться к тому, что вас ждет. А пока просто поверьте, что все написано правильно, в том числе и странного вида определение геометрии изображений 1200x900>
, где завершающий символ > означает: «изменять размеры изображений до указанных, сохраняя пропорции оригинальной геометрии».
Иными словами, изображение с размерами 2200 × 1000 будет автоматически уменьшено до 1200 пикселей по горизонтали и, чтобы сохранить пропорции, с 1000 до 545 пикселей по вертикали. Отлично!
Сценарий также гарантирует, что команда file
найдет все файлы изображений в указанном каталоге, после чего, с помощью последовательности замысловатых преобразований, имена найденных файлов будут сокращены до расширений ( *.jpg, *.png и так далее).
Читать дальше