Aliaksandr Stelmachonak aka aVaTaR
2008-10-02
Mirage — простой и быстрый просмотрщик изображений, построенный на GTK+ и написанный на Python с использованием библиотеки PyGTK.
Так как программа не входит в штатный комплект дистрибутива, начинать с ней работу следует с установки оной из репозитория командой
# netpkg mirage
или через графическую оболочку xnetpkg. После установки значок для запуска программы можно найти в стартовом меню в разделе Графика.
По желанию можно также забрать текущую версию из svn на сайте разработчиков и собрать самостоятельно:
svn co http://svn.berlios.de/svnroot/repos/mirageiv/trunk mirage
После запуска программы перед нами предстает окно с меню, панелью инструментов и пустой панелью слева. После открытия изображения (или сразу целой папки) в главной панели мы видим непосредственно само открытое изображение, а в панели слева его эскиз и, опционально, эскизы других изображений из той же папки — для удобства навигации по ним. Вот так все это выглядит в живую:

Поддерживаются следующие форматы изображений: png, jpg, svg, xpm, gif, bmp, tiff и другие — список вполне достаточен для среднестатистического пользователя.
Панель инструментов не блещет огромным выбором и содержит всего 7 кнопок: вызов диалога открытия изображения с диска, кнопки масштабирования (уменьшить/увеличить/в натуральную величину/по размеру окна) и кнопки навигации (предыдущее/следующее). Все. А хотелось бы видеть там еще кнопки для других операций — ведь описанными функциональность программы не ограничивается, но в текущей версии возможности добавлять/убирать кнопки с панели инструментов, к сожалению, нет. Возможно она появится в будущем, ведь проект активно развивается, а пока приходится довольствоваться тем, что есть.
Теперь пройдемся по меню инструментов.
Меню File содержит следующие пункты: открыть изображение, открыть папку с изображениями, открыть удаленное изображение, сохранить, сохранить как, сделать скриншот, свойства и выход.
Из интересных пунктов отмечу открыть удаленное изображение — открывает изображение по URL'у — функция с сомнительной полезностью, да к тому же у меня не работающая (почему — не разбирался по причине этой самой сомнительности), сделать скриншот — о ней стоит сказать отдельно и свойства — открывает окно со свойствами текущего изображения:

Свойств не очень много, но основные присутствуют. Возможно, кому-то будет недоставать, например, такой информации, как EXIF-данные для фотографий, но для основной массы пользователей приводимой информации вполне достаточно.
Теперь о возможности снятии снимков экрана средствами программы:

Все необходимые функции присутствуют и работают, но, опять же, функциональность довольно специфическая — гораздо проще пользоваться например plugin-ом для панели Xfce хотя бы потому, что он всегда под рукой. Хотя своего пользователя эта функция найдет.
Меню Edit собрало в себе те самые базовые возможности редактирования, о которых я упомянул в описании, а именно: поворот влево/вправо, горизонтальное и вертикальное зеркальное отражение, обрезка изображения, изменение размера и настройка, настройка цветовой насыщенности, переименование изображения, его удаление с диска, вызов диалога настроек программы и еще одна функция, которую я и обозвал «расширенными средствами интеграции с внешними приложениями» — настраиваемые операции.
Прежде чем перейти к описанию этих самых операций, не могу не отметить неудачную реализацию операции crop — обрезки изображения. Дело в том, что процедура обрезки происходит не в самом окне с открытым изображением, а в маленьком всплывающем окне, размер которого изменить невозможно — пользователь вынужден всматриваться в эту уменьшенную версию изображения и стараться отметить на ней именно ту область, которую нужно:

Впрочем, программа и не претендует на звание редактора изображений, а для редких операций подойдет и такая, пусть и не очень удачная реализация.
Теперь об тех самых операциях. А представляют они собой не что иное, как и настраиваемые операции в том же самом Thunar'e, за что, собственно, я его люблю и использую как основной файл-менеджер, несмотря на обилие «двух-панельных» и «многотабовых» аналогов. Выглядит это вот так:

Согласитесь, возможности более чем достаточные: вызов внешних программ, все необходимые параметры, возможность программно перейти на предыдущее/следующее изображение, назначить на каждое добавленное действие горячую клавишу да еще и проделать нужную операцию для всех файлов в списке! В общем, все, что душа желает. Вещь очень удобная и практически незаменимая, позволяет реализовать множество операций, как то открытие изображения во внешних программах, перенос изображений по требуемым папкам, дополнительные операции редактирования, групповые операции... В общем, я думаю, что не составит труда реализовать любую требуемую операцию.
Далее, меню View содержит в себе следующие пункты: операции масштабирования, кнопки для которых есть на панели инструментов, опции для включения/отключения таких элементов интерфейса, как панель инструментов, строка состояния и панель с эскизами, а также опция перехода в полноэкранный режим. Все вроде просто и понятно.
Меню Go предназначено для навигации по изображениям из открытой директории. Содержит пункты меню по переходу на предыдущее/следующее, случайное, первое и последнее изображение, а также кнопку запуска слайд-шоу.
Пункт Help содержит 2 подпункта: Content, который ведет на страницу Documentation домашнего сайта и About, выводящий информацию о программе.
Теперь кратко пройдемся по настройкам программы, благо их немного, и все они достаточно прозрачны.

Настраивается поведение программы при открытии файлов, как то режим просмотра (Smart означает масштабирование под размер окна только изображений, бóльших, чем свободное пространство), нужно ли загружать в программу остальные изображения из папки с текущим изображением, нужно ли загружать скрытые файлы, а также директория выбора по умолчанию — последняя использованная или заранее определенная.

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

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

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

Последний пункт содержит опции по выбору алгоритма изменения размера (лучшее качество масштабирования требует больше времени и наоборот), поведение по умолчанию для отредактированных изображений и включению/выключению запроса подтверждения при удалении изображений.
Подробнее обо всех настройках, а также о программе в целом можно прочитать на домашней страничке проекта в разделе документации.
В заключение хочу сказать следующее: программа представляет собой показательный пример того, что и на интерпретируемых языках можно писать отличные приложения, которые ни в чем не уступают, а даже превосходят свои компилируемые аналоги (камень в огород Ristretto). Я не зря упомянул тут эту программу — дело в том, что Ristretto и Mirage дублируют друг друга и в назначении, да и, пожалуй, в интерфейсе, и вряд ли будут сосуществовать друг с другом на одной системе у одного пользователя, но это уже решать самому пользователю, которому, как обычно, достается самая сложная проблема — проблема выбора.