Статья

Идея заключается в следующем: спроектировать автоматическую цепочку от серийной съемки с фотокамеры до публикации в сети фотоальбома в реальном времени. Используемая аппаратура - цифрозеркалка (Canon 450D), ноутбук класса нетбук (ASUS Eee PC 701, самая первая модель), мобильный телефон. Сети нет.

В настоящее время задача видится и разбивается на следующие полностью автоматизированные подзадачи:

  1. серийная съемка (старт и параметры с ноутбука) - done
  2. ресемплинг и копирование на ноутбук (возможно - создание превьюшек) - in progress
  3. загрузка на сайт по FTP - инкрементальный бекап - in progress
  4. "подхват" на сайте и имплементация в тело станицы - автообновление страницы?

1. Серийная съемка

Существует родной Canon'овский софт для аппарата, который в том числе, позвляет а) управлять аппаратом с компьютера, б) сгружать с него фотографии, в) запускать серийную съемку и г) делать кучу всякой ерунды, которая человеку, покупающему топовую модель любительской аппаратуры, по идее, не должна быть нужна. Оставим в стороне находки Canon'овских маркетологов и возьмем п. в) который (вместе с а)) умещается в одной небольшой утилитке весом 20 Mb.

На нетбуке утилитка, однако, отказалась запускаться, сославшись на смехотворное разрешение монитора (600x480). Я согласен, смешно, но что-то делать надо.

Подключаем внешний монитор, расширяем на него рабочий стол, далаем внешний экран основным, кликаем OK... Как бы не так! Виндовый драйвер чешет в затылке, думает "как же этот юзер справится с ситуацией, если с ноутом придется идти на работу? не понесет же он монитор с собой? нет, не справится: пожалуй, отключу я внешний монитор на всякий случай!" И отключает!

На этот случай пришлось взять в руки родную утилиту карты (кажется Intell), которая посчитала меня достойным внешнего монитора, вот: у меня есть монитор с большим разрешением, инсталляция пошла.

Инсталляция: ах! ах! как же я без фреймворка! придется ста-авить...

Напомню, что сама утилитка весит сдержанные 20 Mb, а весь системный диск моей крохотной машинки - 3 Gb. При этом мне никто не предлагает поставить Framework рядом на пустой выносной диск D:, а норовит упихать все на системный. Ну да, разве можно предположить, что в XXI веке может нехватать места на такую ха-ха-ха, как четверть гигабайта?

Что ж, проще отдаться: лезу в Download системы и тру там все, что выглядит неразмерным. (Кстати, стандартный механизм апгрейда в данных аскетичных системных условиях вызывает приступы клаустрофобии.)

Установка завершена. Быстрый тест - фотоаппарат мерно щелкает пока я скручиваю козью ногу из обрывка газеты "Компьютеризация на марше" ставлю чай. Шаг первый сделан.

Дополнение. В утилите серийной съемки есть опция выгрузки на диск. Подключаем ее - и фотографии планомерно сгружаются в выбранную директорию компьютера.

2. Ресайз на лету

Закачать полноформатные картинки по FTP проблематично даже при хорошем канале. А что говорить о мобильно-телефонном?! Поэтому перед загрузкой нужно уменьшить картинки до приемлемого транспортабельного размера, скажем, вписать их в стадартные 800x600, и сделать это на лету.

Все привыкли пользоваться для ресайза средой Photoshop или, в крайнем случае, утилитами-просмотрщиками. Но необходимость обрабатывать изображения на лету отсылает нас к командной строке. Как выяснилось, отраслевой стандарт обработки изображений - и в частности, с командной строки - ImageMagick . Это свободный мультиплатформенный пакет для программирования, но его можно и просто поставить на компьютер (а можно и на сервер) и запускать с командной строки.

Итак, скачиваю установку, установливаю, тестирую. Замеченная фича: как всякая приличная программа, ImageMagick не работает с файлами в папках "дурных" названий. Ну и я не работаю, так что беды здесь нет. Консольная команда для ужимания картинки в нужный прямоугольник выглядит не просто, а очень просто:

convert -resize 800x600 xxx.jpg yyy.jpg

Осталось написать пакетный файл и запустить его в планировщике. Для этого сгодится .bat-файл примерно такого вида (с точностью до опечаток):

for %%f in (*.jpg) do convert -resize 800x600 %%f new_path\%%f
delete *.jpg

(скрипт пережмет все файлы *.jpg, положит их в new_path и удалит исходные, чтобы не мешались на следующем проходе)

3. Загрузка на сайт

Для загрузки на сайт решено использовать инкрементальный бэкап. Мне посоветовали бесплатную утилитку Cobian ( Cobian Backup ); я ее скачал, без особенных проблем установил и настроил. Все заработало если и не с полоборота, то достаточно скоро.

В режиме тестирования фотоппарат раз в пять минут делает снимок, а Cobian Backup раз в пять минут шлет файл на папку на веб-сервере. Подводных камней невидно.

Правда, пока все работает через быструю домашнюю сеть, выход наружу по Стриму.

Chapay — 03 March 2009, 10:29

у меня жизнь проще :-) Я обзавёлся Eee PC 901 - там и экран 1024х600 (можно сделать х720, но тогда он весь не помещается :) ) и диск 12Gb. Соображение по п.4: наверное, можно и страницу генерить и по FTP скидывать вместе с фото.

Интереснее прямо на сайте формировать php-скриптом. Потому что задача довольно общая и решение еще не раз в жизни понадобится!

Комментировать


Ваше имя:
->

>>

Все альбомы

Навигация