воскресенье, марта 13, 2011

photostock-helper

Я закончил стартовую версию программы по загрузке изображений на фотостоки по ftp, о которой я уже писал. Скачать программу и поучаствовать в ее создании можно здесь.

Что такое photostock-helper?

photostock-helper это программа на языке perl, которая позволяет:
  • заполнить метаданные IPTC необходимые для регистрации изображений на фотостоках: наименование, описание, ключевые слова и информацию об авторе.
  • загрузить изображения на несколько стоков одновременно по FTP

Как установить photostock-helper?

Работоспособность программы протестирована для ОС Windows и Linux.

На компьютере должны быть установлены библиотека GTK+, интерпретатор perl и необходимые для работы программы модули:
  • Encode
  • FindBin
  • Fcntl
  • Glib
  • Gtk2
  • Config::General
  • Net::FTP
  • Image::ExifTool
  • Data::Dumper
  • File::Basename
  • File::Spec::Functions
В ОС Linux все эти программные компоненты обычно уже предустановлены.

В Ubuntu 10.04 нужные модули можно установить вот так:

sudo apt-get install perl perl-base perl-modules libglib-perl libgtk2-perl libconfig-general-perl libimage-exiftool-perl libfile-spec-perl

С ОС Windows дела обстоят ожидаемо сложнее, можно начать с установки специализированного дистрибутива perl для Windows Camelbox, в котором поддержка GTK+ уже настроена. Если у кого-то возникнет желание попробовать — я готов помочь советом либо в комментариях к этому посту, либо каким-то другим образом.

После того как все вышеуказанные зависимости удовлетворены, нужно скачать архив по этой ссылке, извлечь из него  два файла photostock-helper.pl и photostock-helper.glade, скопировать их в любой каталог, который входит в список каталогов переменной окружения PATH, для того, чтобы ОС знала где искать исполняемый файл photostock-helper.pl.

Запуск и настройки

Запустите на выполнение исполняемый файл photostock-helper.pl любым удобным для вас способом.

Примечание:для того, чтобы сделать файл исполняемым в Linux зайдите в консоли в каталог с файлом photostock-helper и выполните в такую команду:

chmod +x photostock-helper.pl

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

Формат конфигурационного файла интуитивно понятен. Если вопросы все-таки возникнут — буду рад помочь отдельным образом.

Краткое описание принципа работы программы и элементов интерфейса.

Шаг 1. Регистрация загружаемых изображений


рис 1. Регистрация изображений

Необходимо выбрать закладку 1. Register(1), затем выбрать нужные файлы(2)(в данный момент только формата JPEG) и нажать кнопку Register(3) выбранные файлы появятся в списке(4). Регистрировать можно разные файлы из разных каталогов, столько раз, сколько потребуется.

Список зарегистрированных файлов(4) можно очистить полностью нажатием кнопки Clear All(5). Можно также выборочно удалить нужные файлы из этого списка выбрав их(возможен множественный выбор) и нажав кнопку Delete(6).

Информационные сообщения или сообщения об ошибках будут появляться в области Log(7).

Шаг 2. Изменение свойств изображения

рис 2. Изменение свойств изображений

Для изменения свойств изображения, необходимо выбрать его в списке зарегистрированных изображений(4), а также выбрать закладку 2. Properties(8). Мы увидим выбранное изображение (9), его название Headline(10), описание  Description(11), ключевые слова  Keywords(12), информацию об авторе  ©(13). Под "свойствами" в данный момент понимаются соответствующие IPTC метаданные.

Разделителем ключевых слов являются как запятая(,) так и любое "вертикальное пробельное пространство", например, символ перевода строки. Можно включить автоматическое исключение повторяющихся ключевых слов(12), при сохранении галочкой Kill Duplicates.

Можно выбрать предварительно сохраненную информацию об авторе(13), из выпадающего списка. Также можно настроить автоматический выбор последней сохраненной информации об авторе галочкой  Default. Если эта галочка включена и изображение уже содержит информацию об авторе слово Default будет зеленого цвета. Если же информация об авторе отсутствует, при включенной галочке слово Default будет красного цвета.

Обновить свойства изображения можно нажатием кнопки Reset(14), при этом все не сохраненные изменения исчезнут.

Сохранить сделанные изменения можно нажав на кнопку Set(16). Можно включить автоматическое сохранение сделанных изменений при выборе другого изображения галочкой  Auto(15).

Если IPTC метаданные содержат указание на то что они сохранены в кодировке UTF-8, метка UTF8(17) будет зеленого цвета, в этом случае свойства изображения могут быть сохранены не только латинскими буквами, но и, например, кириллицей. Если такое указание отсутствует, метка UTF8 будет красного цвета, свойства нужно вводить только латиницей.

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

Примечание:Оказалось, достаточно много людей приходят на эту страничку в поисках информации об IPTC-метаданных вообще и о том, в какой кодировке можно/нужно хранить в них информацию. Постараюсь осветить этот вопрос применительно к photostock-helper более подробно.

Формально в IPTC можно хранить данные в любой кодировке, достаточно указать ее в специальном тэге "CodedCharacterSet". Например можно указать, что метаданные в кодировке UTF-8 или CP1251. Программа, которая будет считывать эти метаданные должна сначала прочесть этот тэг и уже на основании указанной в нем кодировки интерпретировать все остальные метаданные. Нюансы можно прочесть по этой ссылке.

В теории все выглядит хорошо, но на практике, большинство программ, с которыми я столкнулся этот тег либо игнорируют, либо неправильно обрабатывают, поэтому в photostock-helper тег "CodedCharacterSet" не меняется никогда принципиально. Вместо этого программа проверяет уже существующее значение этого тега и если это значение равно "UTF8", то метка становится зеленой сигнализируя о том, что метаданные можно вводить на любом языке. В противном случае, метка становится красной, говоря пользователю о том, что внесенные им метаданные будут впоследствии интерпретироваться как-то иначе.

Шаг 3. Загрузка изображений на фотостоки

рис 3. Загрузка изображений

Для загрузки изображений необходимо выбрать закладку 3. Upload(18), на этой закладке выбрать фотостоки(19), на которые необходимо загрузить изображения и нажать кнопку  Upload(20).

Все изображения из списка(4) будут загружены на все фотостоки(19) отмеченные галочками. Информация и/или ошибки будут выведены в журнал  Log(7).

Примечание: в программе возможны изменения, соответственно это описание тоже может измениться.

А, да, стандартная страшилка: пользуйтесь этой программой на свой страх и риск. Я ни за что не отвечаю — чик-чик, я в домике :)

18 комментариев:

ameli комментирует...

Добрый день!
Спасибо большое за программу, давно искала нечто подобное :)
Только вот вопрос возник - как же грузить на стоки? При отправке в логах надпись "log in error". Куда вводить логин? :)

oivanenko комментирует...

а это как раз про этот абзац из поста:

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

Формат конфигурационного файла интуитивно понятен. Если вопросы все-таки возникнут — буду рад помочь отдельным образом.


в этом файле есть подобные строки:

<123rf.com>
active 1
defactive 1
password
server ftp.123rf.com
user


нужно вбить для них user и password

я не стал делать для такой редко требующейся надобности отдельный графический интерфейс :)

кстати, можно добавлять любые другие ftp-приемники(стоки), добавив такие строки по аналогии

Yana Shonbina комментирует...

Добрый день! Установила программу, по ftp на фотостоки файлы отправляются, а метаданные все пустые. Заполняю метаданные во вкладке Properties, сохраняю, нажав Set. При загрузке фотографий в логах только об отправке по ftp. подскажите пожалуйста в чем может быть дело? Спасибо!

Oleg Ivanenko комментирует...

Yana, а при нажатии на кнопку "Set" в "Log" ничего не пишется?

Если запустить программу из консоли,в консоли никакие ошибки не появляются?

Yana Shonbina комментирует...

Из консоли запускаю, ошибок нет, только отправка ftp в Log-ах появляется.

Oleg Ivanenko комментирует...

Yana, не совсем понимаю, что может у Вас происходить, но если есть такое желание, я могу попробовать сегодня после 21.00 по Москве посмотреть прямо на Вашей машине почему не сохраняются метаданные при помощи TeamViewer(http://www.teamviewer.com/ru/download/index.aspx)

мой скайп: ash_kcn, давайте где-то в 21.15 состыкуемся

Yana Shonbina комментирует...

Еще раз здравствуйте, ежели не оч сложно, то очень бы хотела. Skype сходу не получилось установить, установлю - отпишу в скайп, и если у Вас будет время, то с удовольствием приму Вашу помощь.

Oleg Ivanenko комментирует...

Не сложно, в 21.15 буду ждать Вас в скайпе

Yana Shonbina комментирует...

Олег, прошу меня извинить. Вчера решила переустановить операционку, а дистрибутив оказался испорченный, так что осталась вообще без системы. Только сегодня получилось установить и настроить. Все заработало, в том числе и метаданные. Но я кажется поняла почему раньше не работало, я запускала программу из-од обычного пользователя, а файлы jpg доступны на запись только для рута, из-за этого наверно данные в файл не записывались. хотя при нажатии на Set ошибок в логах не было. Еще раз прошу меня извинить за беспокойство. Программа оч нужная! Спасибо!

Oleg Ivanenko комментирует...

Yana, то есть проблема была в правах доступа, сейчас все работает, просто программа не выдает сообщения об ошибках?

Yana Shonbina комментирует...

Да, сейчас всё работает) Мне кажется, что в правах доступа. Ошибок в логах не было.

Oleg Ivanenko комментирует...

Yana, все хорошо, что хорошо кончается. По поводу сообщений об ошибках: вряд ли я сейчас буду что-то менять в этой версии программы, потому что я делаю новую версию программы, с существенно бОльшим функционалом, которую переписал с нуля. Только вот когда я ее закончу непонятно :)

Yana Shonbina комментирует...

Спасибо!) Для меня главное было, чтоб заработало, иначе ручками делать очень долго, а тут все оч удобно. Любопытно чем же расширится функционал новой версии:)

Oleg Ivanenko комментирует...

основное, что будет в новой версии, это то, что не нужно будет "регистрировать" фото при каждом запуске программы -- будет вестись база данных фотографий.

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

честно говоря будет масса нового и это заслуживает отдельного поста, а не комментария.

к сожалению, пока разработка заморожена, у меня нет сейчас времени заниматься новой версией :(

вот скриншот текущего состояния -- http://dl.dropbox.com/u/27248819/published/ps020_prescreenshot.jpg

вот проект на launchpad.net https://launchpad.net/photostock-helper

там можно скачать текущую версию и помочь в ее разработке

Юрий комментирует...

Только поставил программу и увидел, что файл конфигурации пустой. Что делать чтобы он стал нормальным? Мой Skype astronom1987 . Буду рад встречи в сети :)

Oleg Ivanenko комментирует...

Юрий, а мой второй комментарий сверху не помогает решить возникший у Вас вопрос?

Айнур Шауэрман комментирует...

Спасибо большое за пост и программу!Который год ею пользуюсь на Убунте, палочка-выручалочка просто!

Oleg Ivanenko комментирует...

Айнур, на здоровье :)