Популярно |
Photo /
От фото до веба: проект автоматического трекаИдея заключается в следующем: спроектировать автоматическую цепочку от серийной съемки с фотокамеры до публикации в сети фотоальбома в реальном времени. Используемая аппаратура - цифрозеркалка (Canon 450D), ноутбук класса нетбук (ASUS Eee PC 701, самая первая модель), мобильный телефон. Сети нет. В настоящее время задача видится и разбивается на следующие полностью автоматизированные подзадачи:
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 (скрипт пережмет все файлы *.jpg, положит их в new_path и удалит исходные, чтобы не мешались на следующем проходе) 3. Загрузка на сайтДля загрузки на сайт решено использовать инкрементальный бэкап. Мне посоветовали бесплатную утилитку Cobian ( Cobian Backup ); я ее скачал, без особенных проблем установил и настроил. Все заработало если и не с полоборота, то достаточно скоро. В режиме тестирования фотоппарат раз в пять минут делает снимок, а Cobian Backup раз в пять минут шлет файл на папку на веб-сервере. Подводных камней невидно. Правда, пока все работает через быструю домашнюю сеть, выход наружу по Стриму. Интереснее прямо на сайте формировать php-скриптом. Потому что задача довольно общая и решение еще не раз в жизни понадобится! При добавлении комментария, пожалуйста, не забывайте подписываться. |