Все о Linux. LinuxRSP.Ru

[an error occurred while processing this directive]

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

 Новые статьи :

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

Решение проблем при использовании "1c предприятие" 8.2 в Linux

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки







Rambler's Top100





 
 

Сага о графике

Содержание

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

Что нужно для иллюстрирования текстового материала? В первую очередь, как минимум, сама иллюстрация. Которая может быть либо создана собственноручно, то есть нарисована, либо воспроизведена с некоего объекта - сфотографирована, отсканирована, захвачена с экрана. Для первой цели служат т.н. "рисовалки" - векторные, как правило, редакторы (можно рисовать и в растровых, но для этого требуется художественный талант). Вторая цель достигается разнообразными специализированными программами захвата изображения.

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

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

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

Однако Linux пока не принадлежит к платформам, имеющим уж очень развитые средства работы с графикой. И поэтому большая часть графических Linux-программ может рассматриваться как ориентированные на одну из означенных стадий. А посему в этом порядке я и попробую их рассмотреть. Начав, естественно со средств для первой стадии -

Средства создания изображений

Основным средством создания изображений является их рисование. Осуществляемое, как было сказано, с помощью векторных редакторов. К сажалению, это - именно та область программного обеспечения, где платформа Linux выглядит наиболее бледно: для нее не существует ничего функционально близкого современным вектроным редакторам для платформ Windows и MacOS. Исключения - недавно портированные под Linux пакеты Deneba Canvas и CorelDraw. Однако и та, и другая имеют статус коммерческих и фактически недоступны даже в качестве пробных версий.

Из всего бесплатного инструментария для создания векторных изображений сильнейшим является модуль StarDraw из пакета StarOffice, охарактеризованный в одной из предыдущих глав. По своим изобразительным возможностям он примерно соответствует CorelDraw 5-й или 6-й версий. Хотя обладает некоторыми уникальными особенностями, например, возможностью создания истинно трехмерных изображений, правда, ограниченной готовыми стереотипами.

Шансом развиться в полноценный редактор векторной графики обладает и графический модуль из пакета KOffice - KIllustrator. Являющийся, к тому же, единственным полноценно функционирующим комопнентом этого набора. Однако ныне он не дотягивает до уровня даже рисовальных модулей из ранних версий презентационных пакетов, вроде Freelance Graphics.

Разумеется, KIllustrator имеет базовый набор рисовальных средств, задуманный весьма неплохо. Предусматриваются:

  • рисование произвольных (т.н. Freehand) и ломаных линий (прямые рассматриваются как частный случай последних);
  • непосредственное создание кривых Безье - в терминологии KIllustrator это не то же самое, что произвольные линии;
  • прямоугольников и овалов (при нажатой клавише Control - правильных квадратов и кругов);
  • многоугольников; правда, в рассмотренной мной реализации все многоугольники сводились к равностроннему треугольнику.

Имеются средства ввода текста с возможностью изменения гарнитур, начертаний и кеглей. Выгодное отличие от StarDraw - возможность работы с кириллическими шрифтами Type 1 без искажения последних. Текстовые элементы могут вращаться и деформироваться в горизонтальной и вертикальной плоскостях. Однако средств для работы с крупными текстовыми блоками (paragraph text, в терминологии CorelDraw) нет и, как будто, не предвидится.

Имеется возможность точечного редактирования линий, в том числе и ограничивающих фигуры. Точки (узлы, в терминологии русской версии CorelDraw) могут быть перемещены, удалены или добавлены. Можно также разорвать линию, прямоугольник или овал, однако способа соединить две линии не обнаруживается. По непонятным причинам средства редактирования линий не применимы к многоуголниками (сиречь, треугольникам). Для редактирования точек на второй линии (или фигуре) требуется предварительно перейти в режим указателя.

Для линий, фигур и текстовых элементов доступно изменение атрибутов (толщины, цвета и стиля линий, шрифтового оформления для текста, заливки - сплошной, градиентной или узорной (Pattern) для фигур. Оно осуществляется либо через контектное меню по щелчку правой клавишей мыши (пункт Properties, вызывающий панель с закладками Info, Outline, Fill, либо через главное меню (Edit - Properties с тем же результатом).

В доступной мне версии не имеется никаких средств текстурирования или спецэффектов. Правда, векторное изображение может сопровождаться растровой подложной, определяемой через пункты меню Edit - Insert - Bitmap. Среди доступных форматов - GIF, JPEG, PNG, XMP, но, опчему-то, не TIFF.

Возможности обмена данными ограничены. Импорт возможен только для изображений самого KIllustrator и документов Xfig (*.fig). Созданные изображения могут быть экпортированы в виде растра (в форматах GIF и XMP) или записано как файл Encapsulated PostScript (*.eps).

Таковы вкратце основные особенности векторного редактора Killustrator (а более подробного он пока, на мой взгляд, не заслуживает). Правда он также не единственный пакет этого назначения. Можно назвать еще такие программы, как sketch и Tgif. Однако их можно охарактеризовать словами Атоса из "Трех мушкетеров", сказанными в адрес д'Артаньяна: "Разучилась пить молодежь. А ведь этот еще из лучших". Возможности их не простираются дальше создания несложных линий и фигур, да и то иногда не самым простым и интуитивно понятным способом.

Кроме того, при необходимости в качестве рисовального пакета можно использовать такую программу, как Qcad (http://www.qcad.org). Как можно догадаться из названия, это - нечто вроде средства автоматизированного проектирования, располагающее довольно развитыми возможностями создания и редактирования линий и фигур, а также текстовых элементов, автоматической простановки размеров и т.д.

Созданное в Qcad изображение записывается в стандартном для CAD-систем формате DXF, понимаемом большинством векторных редакторов. Правда, импорт из какого-либо иного векторного редактора невозможен. Не предусмотрено также помещение растровых изображений.

Так что в отношении векторной графики под Linux остается только надеятся на лучшее и верить, что рано или поздно полноценные средства этого назначения появятся.

Из программ для захвата изображений первое, о чем хочется сказать - это о программе ksnapshot, предназначенной для снятия экранных копий (так называемых скриншотов). Она несколько напоминает Capture из комплекта CorelDraw, хотя и попроще. Позволяет снять весь экран или только активное окно, скрыв или, напротив, выведя на первый план окно самого ksnapshot'а; в отличие от Capture, нельзя скопировать объект произвольной формы. Результаты можно сохранить в виде gif, jpeg, bmp и еще нескольких форматах. Как ни странно, среди выходных форматов отсутствует tiff.

Традиционные средства обработки и представления изображений

Изучение возможностей средств обработки изображений проводилось мной на реальной задаче - подготовке геологических картматериалов для представления в сети Интернет. Материалы эти включали: растровую подложку (аэро- или космофотоснимок, теневую или имиджевую карту рельефа по данным DEM и т.д.; отрисованные векторные элементы (стратиграфические и фациальные границы, разломы различной геометрии, кинематики и ранга); текстовые элементы (индексы геохронологической шкалы, названия геологических структур и тому подобное). Все это трансофрмировалось в какой-либо общепринятый растровый формат без потери качества (конкретнее, TIFF).

Естественно, требуется превратить это безобразие в форму, пригодную для представления в Интернет и понимаемую большинством общеприменяемых браузеров (возможно, после установки кое-каких plug-in'ов). И при этом занимающую по возможности минимальный объем. При том, что для понимания деталей геологии размер рисунка - не менее 600-800 пикселей по горизонтали (для определенности - 600, что может просматриваться практически на любом мониторе).

По сию пору едиственной общераспространенной формой Интернет-графики является растровая. Она существует в виде трех форматов - JPEG, GIF, PNG. Первый предназначен для фотореалистических изображений, второй - для штриховой графики и текстовых элементов, третий же, теоретически, пригоден для обоих целей. В том числе и для представления иллюстраций, сочетающих фотореалистические, штриховые и текстовые компоненты. Какими же инструментами для работы с этими форматами располагает Linux? В отличие от векторных редакторов, средств для работы с растровой графикой под Linux довольно много. Правда, большинство из них - это простенькие инструменты класса Paintbrush (Xpaint, Kpaint и другие). Однако, наряду с ними, имеется и такой замечательный инструмент, как

GIMP

Эта программа общепризнанно (и заслужено) считается одним из наиболее успешных проектов, выполненных в рамках открытых исходных текстов. Текущая ее версия (1.1.2x) ныне входит в стандартный комплект практически всех распространенных дистрибутивов. Она почти полностью переведена на русский язык (к сожалению, за исключением Help). Однако использованная терминология существенно отличается от принятой в русских версиях графических редакторов для Windows. Что, вместе с изначальными терминологическими особенностями GIMP, может вызвать определенные трудности. Поэтому я постараюсь ниже приводить параллельно и оригинальную, и русскоязычную терминологию.

При запуске GIMP'а на экране появляется интсрументальная панели (размер ее - изменяемый) и три дополнительные - Выбор кистей, Слои, Каналы и Контуры, Параметры инструментов.

Меню главной панели содержит три пункта - Файл, Расширения, Справка. В первом - ограниченный набор базовых операций: открытие и создание файла, выход из программы, установки (в том числе - настройка инструментов, таких, как кисти, цветовые палитры и т.д.); здесь же - захват изображения с экрана или путем сканирования, а также Диалоги, вызывающие многочисленные дополнительные (помимо видимых по умолчанию при запуске) панели.

В пункте Xtns - базы данных дополнительных модулей (plug-ins) и скриптов, браузеры баз данных и веб-ресурсов, а также сами скрипты, в том числе т.н. script-fu, обуславливающие своеобразие программы. В пункте Справка - индексированные и контекстные справки, совет дня, а также отладчик скриптов.

Все прочие манипуляции совершаются (после открытия или создания файла) щелчком правой клавиши мыши на изображении. Этим вызывается всплывающее меню, содержащее многочисленные пункты:

  • Файл (file);
  • Правка (edit);
  • Выделение (select);
  • Просмотр (view);
  • Изображение (image);
  • Слои (layers);
  • Инструменты (tools);
  • Диалоги (dialogs);
  • Фильтры (filters);
  • Guides;
  • Видео (video);
  • Script-Fu.

Назначение первого пункта - понятно, это манипуляции с файлами, а также общепрограммные настройки и печать. Следует только отметить, что GIMP не имеет собственного формата файла. Но позволяет напрямую открывать практически любой растровый формат, включая формат Adobe PhotoShop, AVI, EPS, WMF и многие другие. И по умолчанию (командой save) сохраняет в формате открытого файла.

Функция экспорта осуществляется командой save as. Список экспортируемых форматов также столь же широк, как и набор импортируемых типов файлов. Интересно, что при экспорте учитывается характер изображения: скажем, файл в индексированных цветах (например, gif) нельзя напрямую сохранить в полнолноцветном виде (как tif или jpeg) и - наоборот, для сохранения tif-файла в формате gif необходимо предварительно выполнить индексацию. Сначала это кажется непривычным, но определенная логика в этом есть. Хотя при обработке большого количества изображений несколько утомляет.

Пункт Правка в основном аналогичен таковому стандартных Windows-программ: те же вырезание, копирование и вставка, undo и redo (число их уровней устанавливается в prefeneces, по умолчанию - 5). Смысл остальных подпунктов обычно понятен из их названий (заливка, обводка и т.д.); хотя, если есть привычка к англоязычной терминологии, некоторые из них понимаются не с первого раза.

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

Следующие манипуляции с рисунком - в пункте Изображение (Image). Здесь его можно преобразовать (в RGB, индексированные цвета или градации серого), трансформировать, вращать, обрезать и т.д. Здесь же - работа с альфа-каналами и цветовыми палитрами. Интересны подпункты Resize и Scale (в русском переводе - Размер холста и Масштабирование, соответственно). Первый - обрезает рисунок до заданного размера, тогда как собственно изменение его размера (то, что называется resize в PhotoShop'е) - осуществляется посредством scale (то есть масштабированием). Что также несколько непривычно по первому разу.

С пунктом layers все ясно - это действия со слоями. А вот в пункте tools - масса всяких подпунктов. Здесь и выделение областей всяческой формы (многоугольников, полигонов, произвольной формы и т.д.), и перемещение, и обрезание, и зеркалирование, и вращение (что частично совпадает с некоторыми подпунктами из пункта image).

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

Пункт Диалоги аналогичен таковому меню главной панели. Это вызов всякого рода дополнительных панелей: слоев, каналов, кистей, плитр. шаблонов, градиентных заливок и т.д.

Следующий пункт - filters - аналог соответствующего PhotoShop'овского. И подпункты его примерно совпадают со штатным набором последнего. Интересно тут то, что многие фильтры - неактивны; можно предположить, что они существуют в природе, но не входят в стандартную поставку или не устанавливаются по умолчанию.

Самое интересное в GIMP'е - пункт Script-Fu, не имеющий, насколько я знаю, аналогов в других растровых редакторах. Это - набор скриптов для содания всякого рода спецэффектов. Что в целом близко к назначению фильтров, но отличается тем, что скрипты эти может писать каждый. Если, разумеется, знает соответствующий язык (Tcl, Scheme и Perl). То есть мы имеем дело с неким набором интерпретируемых команд, посредством которых можно создавать какие-нибудь уникальные эффекты в личных (и не только) целях.

Надо сказать, что большинство подпунктов скриптового меню - неактивны (по аналогии с фильтрами, их надо устанавливать отдельно). Однако некоторые любопытные эффекты работают. В отличие от применения фильтров, действие скриптов отменить (командой undo) нельзя.

Вот, вкратце, обзор основных возможностей GIMP'а. Что же из этого изобилия можно было приспособить для посталенной мной задачи?

Поскольку предполагается, что исходный tif-файл при изготовлении был доведен до кондиции с точки зрения качества, единственное, что сейчас требуется от GIMP - это трансофрмировать его в последовательно в GIF, JPEG и PNG с минимальными потерями и максимальным сжатием.

Для чего сначала произведем индексацию (подпункт indexed в пункте image). Здесь перво-наперво нам предлагается выбор палитры: полной 256-цветной, вебовской 216-цветной, заказной (которую можно выбрать из готовых и потом отредактировать), или однобитной черно-белой. Здесь же - включается или отключается dithering.

Получив рисунок в индексированных цветах, просто сохраняем его (save as) как GIF. Для чего вводим новое имя (имя исходного tif'а не наследуется), выбираем определение типа (Determine file type - GIF, расширение при этом присваивается автоматически), и жмем OK. Нас спрашивают, желаем ли мы иметь черезстрочный GIF (по умолчанию - выключено) и не требуется ли комментарий (по умолчанию - Made with GIMP, но можно ввести свой; поскольку наша цель, кроме всего, еще и сжатие, последнее явно лишнее). Интересно, что нет способа напрямую задать прозрачность GIF-файла. Хотя это можно (и несложно) сделать, используя альфа-каналы, отношу такую особенность все же к недостаткам.

Следующий этап - преобразование исходного TIFF-файла в формат JPEG. Эта операция - еще проще, поскольку не не требует предварительного индексировния, а только - задания степени компрессии/качества (в долях единицы). Аналогично - и сохранение в формате PNG, где, правда, задается дополгительный вопрос о той же черезстрочной развертке.

И как же GIMP справляется с нашими основными задачами - сохранением качестваи компрессией? С первой - вполне нормально, GIF-файлы и в 256-, и в 216-цветной палитрах получаются вполне пристойными. Причем практически неотличимыми друг от друга, что бывает не всегда.

С компрессией - неоднозначно. В 256-цветной палитре рисунок размером 600 на 540 пикселей (исходный tif - 970 килобайт) достиг научно-фантастического размера более 300 килобайт (в два раза больше, чем при экспорте из PhotoShop'а при аналогичных установках). Правда, при переходе к веб-палитре он волшебным образом уменьшился почти втрое - до 125 килобайт (повторяю, с точки зрения качества они при этом были неотличимы). Можно предположить, что путем редактирования палитры его можно уменьшить еще больше. что будет сопоставимо с результатами работы специализированных GIF-оптимизаторов для Windows (из которых большинство - лпатные, и весьма дорогие для shareware).

При трансформации того же файла в формат JPEG - результат вполне ожидаемый: чуть больше 300 KB при минимальном сжатии, около 15 - при максимальном и чуть меньше сотни - при промежуточном (50%). В первом случае рисунок был почти читаемым, но для моих целей непригодным (артефакты вокруг букв и рисованных границ), в последнем - откровенно плох. Хотя при максимальном сжатии - еще хуже. При преобразовании в формат PNG (с параметрами компрессии по умолчанию) качество нареканий не вызывало, но размер итогового файла выходил за рамки приличий.

Таким образом, GIMP в современном его виде (и без факультативных средств в виде фильтров и скриптов) вполне пригоден для выполнения большинства обыденных задач обработки растровой графики и представления ее в сети Интернет. К достоинствам его следует отнести предельную логичность организации и простоту использования. И, как следствие - простоту освоения, особенно для человека, не испорченного PhotoShop'ом (авторы последнего явно больше тройки по классической логике не имели). С точки зрения возможностей - более чем достаточен для подавляющего большинства задач.

Недостатки - изрядная медлительность, особенно при трансформациях или применении таких ресурсопожирающих фильтов, как размытие; видимо, оптимизация последних версий PhotoShop'а под MMX дает себя знать (припоминаю, что раньше и там при сходных операциях можно было не только покурить, но и выпить-закусить). А лично меня больше всего раздражала необходимость отключения вставки комментария при каждой записи (и перезаписи!) файла любого типа (не только GIF или JPEG, но и TIFF, и PNG). Может быть, авторы пойдут мне на встречу и сделают ее по умолчанию выключенной? Все же и GIF, и JPEG, и PNG - форматы в первую очередь для Интернет, а там каждый лишний байт - лишний... Впрочем, это так, придирка.

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

Однако не GIMP'ом единым жив человек, готовящий графику, особенно для представления в Интернет. Даже под Linux. В ряде случаев полезно воспользоваться такой программой, как

Compupic

Это - бесплатный для некоммерческого использования продукт, доступный (в виде rpm-пакета размером 1,8 мегабайта) на сайте ее производителя - фирмы Photodex: http://www.compupic.com. Версия под Linux портирована с платформы Windows, что обуславливает многие ее особенности.

По своему предназначению Compupic - менеджер графических файлов, типа Ulead ImPal или PhotoImpact под Windows, например. После не вызывающей проблем распаковки и запуска появляется окно следующего вида: в левой стороне вверху - дерево каталогов (папки, содержащие графические файлы, выделены цветом), в правой - содержание выбранного каталога в виде иконок; те из них, которые соответствуют известным программе графическим файлам (среди которых - bmp, tiff, gif, jpeg, png, psd и другие) , представляют собой их миниатюризованные изображения; в левом нижнем углу - превью выбранного файла. Щелчок по нему (или непосредственно по иконке) вызывает файл для редактирования.

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

Кроме того, имеется возможность просмотра в виде полноэкранного слайд-шоу, автоматического или в произвольном порядке. Ну и еще всяческие опции, в частности, индексирование каталога.В результате которого создается один или несколько (в зависимости от объема каталога) файл с миниатюрами всех имеющихся изображений. По умолчанию это JPEG-файл размером 640 на 480 пикселей, но формат и размер его, а также вид могут быть настроены. Так, среди выходных форматов могут быть указаны также и GIF, и PNG. Настраивается также вид вид верхних и нижних колонтитулов, по умолчанию сопровождающих каждый файл, и вид подрисуночных подписей.

В общем - простая и удобная база данных графических изображений. Функционально сходная, повторяю, с Ulead ImPal. В отличие от последнего, как будто не позволяется подключить внешний графический редактор. Однако имеются собственные функции редактирования изображения. Ограниченные, но в большинстве случаев вполне достаточные.

Как уже говорилось, щелчок левой клавишей мыши (двойной, что необычно для X Window, сказывается тяжелое наследие Windows-режима) по иконке открывает окно редактирования изображения. А здесь по щелчку уже правой клавишей доступны (помимо стандартных операций с файлами, вырезания, вставки, масштабирования вида, вызова помощи и т.д.) многочисленные манипуляции непосредственно над рисунком (пункт меню Image).

Среди них:

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

Результаты этих манипуляций могут быть сохранены в различных форматах, среди которых - bmp, pcx, tiff, gif, jpeg, png и даже psd. Следует заметить, что при закрытии рисунка предложения сохранить изменения не следует - об этом следует помнить самому.

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

Таблица 1. Сопосталение объемов графических файлов, полученных различными программами.
Формат 1 2 3 4
TIFF (исходный) 799 604 726366 727 692 720 492
GIF
Web Graphics Optimizer 12023 7698 57730 11135
GIMP 61929 58261 42325 12250
Compupic 52345 68726 54670 212310
JPEG
Web Graphics Optimizer 24333 13518 41220 19181
GIMP 20141 15655 65371 27620
Compupic 30816 21620 71381 34179
PNG
GIMP 15000 210958 155800 16636
Compupic 14690 211601 120711 16602

Примечание к таблице: Размер файлов в байтах

В качестве тестовых изображений использовались основные виды графики, характерной для геологии: 1 - традиционная геологическая карта; 2-4 - различные типы карт, построенные по данным GTOPO30 (USGS): 2 - Image Map, 3 - Shadow Map, 4 - Surface Map. Исходные TIFF-файлы получены экспортом из Corel Draw 8 и Surfer 6. Для сравнения приведены размеры файлов, полученные экспортом из GIMP и (для файлов GIF и JPEG) обработкой программой Web Graphic Optimizer - одного из лучших инструментов, существующих с этой целью под Windows. Вследствие очень различного подхода при обработке изображений в этих трех программах, все манипуляции над исходными файлами выполнялись при установках по умолчанию.

Думается, что в комментариях таблица не нуждается. Подтверждая ту глубокую истину, что для каждого типа изображений следует подбирать свой формат и свою программу преобразования. Скажу только, что в отношении размера файлов во всех поддерживаемых форматах Web Graphic Optimizer держит безусловное первенство почти по всем позициям. Что естественно, поскольку именно (и только) для этого он и предназначен. Этот факт открывает направление дальнейшего совершенствования Linux-графики - создание специализированных графических оптимизаторов для Интернет...

Программа Compupic, при всех своих достоинтсвах, обладает одним ощутимым недостатком, вытекающим из ее изначально коммерческой природы. А именно, по прошествии некоторого времени она отказывается работать с файлами в форматах TIFF и GIF. То есть считать их можно, и сохранить в форматах, например, JPEG или PNG - тоже, но вот произвести какие-то действия - уже нет. Невозможно также экпортировать какие-либо иные типы файлов в эти форматы. Поэтому я кратко рассомтрю

Прочие растровые радакторы

Этого недостатка, естественно, лишены свободные аналоги Compupic, из которых самым известным является, пожалуй, Xnview. По возможностям (создание альбомов, просмотр отдельных изображений и их последовательностей в виде слайд-шоу, несложное редактирование графических файлов и их конвертация в различные форматы) программа эта близка к Compupic. Недостатки ее - исключительная медлительность и неустойивость при работе с файлами большого объема.

Кроме того, в состав последних версий Linux Mandrake входит удобное средство каталогизации и просмотра графических файлов -GQview. Эта программа, в отличие от Compupic или Xnview, не содержит встроенных средств редактирования изображений, но допускает подключение внешних редакторов в большом количестве (по умолчанию это GIMP, Electric Eyes, XV и Paint).

Наконец, в составе графической среды GNOME в качестве штатного средства имеется программа gPhoto. Изначально она предназначена для работы с цифровыми фотокамерами (нужно заметить, что список поддерживаемых моделей весьма обширен). Однако в ней есть средства каталогизации графических файлов, довольно, на мой взгляд, удобные. Возможно также несложное редактирование изображений - изменение размера, яркости, контрастности, цветового балланса, вращение и отражение.

Все распространенные (и описанные выше) Сетевые растровые форматы - и GIF, и JPEG, и PNG, имеют один общий недостаток - они не масштабируются. А при анализе геологической графики очень существенно иметь возможность видеть один и тот же объект в различных масштабах - от предельно генерализованного для выявления региональных структур до максимально детального для локальных особенностей.

Восполнение этого (и ряда других) недостатка можно в нетрадиционных графических форматах, один из которых именуется

Формат DjVu

Формат со столь завлекательным названием был придуман фирмой AT&T (http://www.djvu.com). И по замыслу предназначался для сканированных изображений, совмещающих полноцветную графику и текст, для которого требовалась читабельность.

За почти два года жизни djvu весьма развился и ныне вполне пригоден для представления в Сети. Хотя широкого распространения там не получил, на мой взгляд - незаслуженно.

Однако формат этот продолжает активную жизнедеятельность, развиваясь и совершенствуясь. И обнаруживая новые сферы применения. В частности, только он позволяет более-менее адекватно отображать то, с чем я имею дело по роду своей работы.

Что такое DjVU

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

  • адекватная передача полноцветной графики;
  • сохранение удобочитаемости текста;
  • достаточная компактность.

И должен со всей ответственностью зявить, что с этими задачами DjVU вполне справляется. Оптимизация его основана на том, что изображение с большим количеством цветовых переходов (например, фотография) как бы отделяется от штриховых элементов и текста (компрессируемыми отдельно) и сжимается по алгоритму, сходному с JPEG. Результатом является качественная и компактная передача полутоновой графики, свойственная JPEG, без свойственных последнему артефактов вокруг текстовых и штриховых элементов, четкость передачи которых приближается к GIF.

Плюс к этому, DjVU обладает почти уникальной для Интернет-графики особенностью - способностью к масштабированию. А не так давно он оброс и еще некоторыми дополнительными усовершенствованиями. На его основе стало возможно создание навигационных карт (image map) и многостраничных документов.

Это и делает формат DjVU пригодным для решения многих задач, возникающих при представлении в Интернет графических материалов. А в ряде случаев он оказывается просто незаменимым. И, не смотря на это, распространенность его в Сети не идет ни в какое сравнение не только с традиционными Сетевыми графическими форматами (такими, как JPEG и GIF), но и даже с Macromedia Shockwave - также относительно новым фирменным форматом, претендующем на роль нового стандарта.

Однако Macromedia Shockwave - формат фирменный (то есть принадлежит фирме Macromedia, http://www.macromedia.com) и, до недавнего времени, закрытый. Хотя ныне положение изменилось, однако открытого и бесплатного инструментария для работы с Shockwave по чию пору, насколько мне известно, нет - требуется инструментарий фирменный, и далеко не бесплатный.

Формат DjVu, напротив, является открытым со дня своего создания. Спецификация его описана на сайте AT&T (http://www.djvu.com). Там же доступен и полный набор инструментов для работы с этим форматом. Не только бесплатно для некоммерческого использования, но и с исходными текстами для существенной части программных модулей.

Чем его делать

Инструментарий DjVu, разработанный фирмой AT&T (DjVu SDK) существует для целого ряда платформ: Windows 9x/NT, Irix SGI, Sun Solaris, HP PA, Linux i386. Кроме того, для Windows 9x/NT существуют инструменты от сторонних производителей - например, фирмы Feith (http://www.feith.com). Разумеется, версии для разных платформ имеют свои особенности. Так, Windows-инструментарий функционирует, естественно, в графическом режиме, большинство Linux-программ - в режиме командной строки. Все сказанное ниже относится, естественно, к Linux-версиям.

DjVu SDK для Linux включает три пакета различного назначения: djvu, djedit и djvumulti. Все они имеют статус бета-версий (первые два пакета - 2.0.х, третий 3.0) и представлены реализациями как для glibc5, так и glibc6. Доступны на сайте AT&T (http://www.djvu.com) в виде архивов tar.gz размером 1,9, 1,2 и 2,5 Мбайт, соответственно. Для скачивания требуется регистрация, процедура которой в последнее время существенно упростилась. Хотя само скачивание, по прежнему, происходит медленно и печально.

Инсталляция всех трех пакетов происходит абсолютно одинаково и подробно описана в прилагаемых README-файлах. После распаковки каждого архива в промежуточный каталог запускается (в терминальном или консольном режиме) инсталляционный скрипт (install.sh). Который для начала предлагает ознакомиться с условиями лицензионного соглашения. При согласии с ними - следует собственно инсталляция. Предлагается ввести пути для размещения исполнимых файлов, библиотек, документации и прочего (для пакета djvu - еще и исходных текстов). По умолчанию предполагается инсталляция в каталог /usr (/usr/bin, /usr/lib, /usr/man) - достаточно просто нажимать Enter. То есть осуществлять ее следует в режиме root. Однако не исключается и пользовательская инсталляция - для этого, соответственно, каталоги следует определить внутри своей пользовательской директории.

Инсталлировав пакеты, можно посмотреть, для чего же они предназначены. Пакет djvu включает два основных компонента - djvuencode и djvudecode. Первый, как и следует ожидать, предназначен для преобразования растровых графических файлов (в форматах TIFF, BMP, JPEG, GIF и еще нескольких) в формат DjVu. Второй - для обратной процедуры. Пакет djedit позволяет создавать на DjVu-изображениях активные области с привязанными к ним гиперссылками (на html- или djvu-файлы); кроме того, он включает автономный модуль просмотра DjVu-изображений - djview и средства создания многостраничных DjVu-документов версии 2.0 - djvuindex и djvupack. В пакете djvumulti предусмотрены средства создания многостраничных DjVu-документов версии 3.0 - djvujoin и djvubundle, а также конвертации версии 2 в версию 3 - djvureindex.

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

Как его делать

Процесс создания DjVu-документа проходит в несколько этапов. Сначала, естественно, следует изготовить собственно DjVu-изображения. Для чего, как уже говорилось, используется команда

djvuencode [options] исходный_файл.* целевой_файл.djvu

или

djvuencode [options] файл1 ... файл# целевой_каталог

Список опций можно получить, набрав в командной строке

djvuencode -h

Их довольно много, но наиболее существенны - две: -p или -photo для фото режима и -d или -dpi для режима документа.

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

Режим документа предназначен для сканированных изображений, совмещенных с текстом. Он требует еще одного параметра - разрешения (N). Каковых можно выбрать три - 100, 200 или 300 dpi.

Во избежание недоразумений, следует сказать, что под разрешением в данном случае подразумевается нечто прямо противоположное общепринятому. А именно - разрешение, с которым сканировался исходный документ. Поскольку именно в соответствие с этим осуществляется его преобразование. То есть, чем ниже исходное разрешение сканирования, тем больше программа пытается улучшить изображение. В результате для любого экранного изображения: при N, равном 100, мы имеем максимальный размер файла и наилучшее качество, а при 300 - наоборот, минимальный файл и низкое качество. Что понятно: ведь экранное изображение имеет разрешение заведомо не выше 85 dpi (обычно - меньше).

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

Полученное DjVu-изображение не может быть вставлено в html-документ посредством тэга img. Однако его можно вызвать с html-страницы с помощью гиперссылки:

a href="имя_файла.djvu" [target="имя_окна"]

После этого DjVu-изображение будет просматриваться через браузеры (Netscape Navigator и Internet Explorer - при наличие соответствующего plug-in, о чем ниже) точно также, как и html-страница с помещенным в нее GIF или JPEG-изображением.

Кроме того, на самом DjVu-изображении можно создать активные области (image map) с привязанными к ним гиперссылками на html- или djvu-файлы. Для этого служит команда djedit, запускаемая из XWindow в окне терминала или мини-командной строки, имеющейся в большинстве оконных менеджеров. Для начала она предлагает выбрать DjVu-файл для редактирования. Что можно сделать, нажав кнопку Browse или - введя полный путь вручную.

На вызванном изображении (которое может быть масштабировано для просмотра) создается будущая активная область - в виде прямоугольника, овала или полигона). В возникшем после этого окошке вводится URL (к сожалению, только руками, уже здесь никакого броузинга нет), альтернативный текст и, при необходимости - target. Активная область может быть в любой момент отредактирована - как ее размер, так и гиперссылка; правда, превратить прямоугольник в овал или полигон - нельзя. И областей этих может быть сколько угодно, вернее - сколько поместится; разумеется, при их взаимном перекрытии активными окажутся введенные последними.

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

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

Однако существует и другой способ просмотра серии DjVu-изображений - путем создания многостраничного DjVu-документа. Для чего предназначен пакет djvumulti. Процесс этот проходит в два этапа. Сначала серия простых DjVu-изображений индексируется с помощью команды

djvujoin [options] file1 file2 ... fileN newindex

в результате чего создается индексный файл с расширением по умолчанию *.iff. Вместо перечисления файлов можно задать каталог (один или несколько), содержащий DjVu-изображения; все они будут проиндексированы, однако в алфавитном порядке их имен. Тогда как в первом случае можно задать произвольную последовательность.

На втором этапе проиндексированные изображения объединяются в единый DjVu-файл с помощью команды

djvubundle [options] file1 file2 ... fileN newfile.djvu

Итоговый newfile.djvu - это и будет многостраничный DjVu-документ; последовательность страниц в нем будет совпадать с последовательностью перечисления файлов при выполнении индексации.

Чем его смотреть

Как уже говорилось, подготовленные DjVu-изображения и многостраничные DjVu-документы могут быть просмотрены в браузерах Netscape Navigator 3-й и 4-й версий и (на платформе Windows) в Internet Explorer 4-й и 5-й версий (с более ранними - не проверял) после установки соответствующих plug-in.

Plug-in для Netscape доступен (на том же сайте AT&T) для всех тех же платформ, что и инструментарий. Он существует в двух версиях - npdjvu-2.0 и npdjvu-3.0. Первая считается как бы стабильной. Это архив tar.gz объемом чуть больше мегабайта. Установка ее полностью аналогична таковой для программного инструментария, описанной выше. Предусматривается два вида установки - private (в режиме пользователя) и public (в режиме root). Следует помнить только, что, возможно, потребуется внести некоторые исправления в описание MIME-типов в Netscape Navigator (по крайней мере, у меня было именно так). Впрочем, никаких сложностей при этом не возникает.

Версия npdjvu-3.0 (архив tar.gz объемом 1,5 Мбайт) имеет статус беты. Установка ее - еще проще. Архив распаковывается в промежуточный каталог. Затем в графической среде запускается Netscape Navigator (обязательное требование!), а в окне терминала - инсталляционный скрипт. После согласия с лицензионным соглашением мгновенно происходит инсталляция - и все, DjVu-изображения доступны в окне браузера; перезапуск последнего - не требуется. Если все это происходит в режиме пользователя - автоматически осуществляется установка private, если в режиме root (или su) - установка public.

Plug-in для Windows (как Netscape Navigator, так и Internet Explorer) - самораспаковывающийся архив размером около 600 Кбайт. Запуск его приводит к автоматической установке plug-in, каковая проистекает без всяких осложнений.

После установки plug-in и загрузки через браузер DjVu-изображения в нижней части окна браузера появляется дополнительная панель (несколько различающаяся в разных браузерах), содержащая средства управления для DjVu-изображения - печати, масштабирования, навигации по страницам (для многостраничного DjVu-документа). Масштабирование возможно как в сторону уменьшения (до 25% от исходного размера), так и увеличения (до 999%). Реально изображение целесообразно увеличивать не более чем до 300% от исходного: при больших увеличениях качество существенно падает. Хотя текст не теряет читабельности, а рисованные элементы - четкости вплоть до максимального увеличения.

Что же дает применение формата DjVu по сравнению с традиционными видами Сетевой графики?

Для чего он годится

Чтобы сравнить формат DjVu по качеству изображения и размеру с широко применяемыми форматами Интернет-графики, было изготовлено пять тестовых изображений в формате TIFF (полученных путем экспорта из StarDraw), каждый из которых иллюстрирует один из видов графики, применяемой, скажем, в геолого-картографической практике (таблица). Это серия из трех карт, построенных по данным формата GTOPO30 DEM (digital elevation modelling - трехмерные модели высот): полноцветная карта (Image Map - не путать с навигационными картами image map), полутоновая Shadow Map и цветная псевдотрехмерная блок-диаграмма Surface Map, к одной из которых (Shadow Map) прилагается текстовая легенда (Legend). В дополнение к ним приведена традиционная геологическая карта, отрисованная по данным полевых наблюдений (Solid Map). Все четыре карты, помимо текстовых подписей, содержат также рисованные геологические границы.

Каждый из этих файлов был преобразован в DjVu-изображение программой djvuencode в режиме фотокачества. Для сравнения приведены также те же изображения, конвертированные в форматы GIF, JPEG и PNG. Конвертирование осуществлялось программой Compipic с параметрами по умолчанию: 256-цветная палитра для GIF, 75-процентное сжатие для JPEG и 6-й уровень компрессии (при 24-битной палитре) для PNG.

Рассмотрение полученных изображений показывает, что DjVu-инструментарий вполне прилично справился с поставленной задачей. Качество итоговых изображений почти не уступает исходному TIFF-файлу, что особенно ярко проявлено в отношении Shadow Map, плохо передаваемой всеми традиционными форматами Интерент-графики, за исключением PNG (но - ценой размера файла).

На всех DjVu-изображениях обращает на себя внимание четкая передача текста. И это при том, что для подписей специально был выбран шрифт с засечками, обычно хуже передаваемый в растровой форме, чем шрифты sans serife. Характерно также полное отсутствие артефактов вокруг рисованных границ, неизбежно возникающих при использовании формата JPEG.

Что касается чисто текстовой страницы, то воспроизведение ее (по крайней мере при достаточно крупном кегле) по качеству приближается к формату PDF.

Достоинства формата DjVu особенно наглядно проступают, если рассмотреть объем получающихся файлов (табл. 2).

Таблица 2. Сравнение объема файлов (в Кбайт) формата DjVu с традиционными форматами Интерент-графики.
Формат Image Map Shadow Map Surface Map Solid Map Legend
TIFF 1000 593 357 306 88
PNG 477 417 195 126 27
GIF 217 180 112 118 26
JPEG 143 197 155 86 129
DjVu 76 167 114 61 112

Примечание: Исходные TIFF-файлы (1073*745) получены экспортом из StarDraw 5.1a. Преобразование в PNG, GIF и JPEG выполнено программой Compupic (все параметры компрессии - по умолчанию), в формат DjVU - sdk djvu фирмы AT&T, параметры компрессии - фотокачество.

Рассмотрение таблицы показывает, что все четыре типа изображений в формате DjVu (за исключением текстовой страницы) в 2-4 раза меньше, чем их PNG-аналоги. Полноцветные изображения (Image Map) в 2 раза меньше JPEG-файлов и в 3 раза - GIF-файлов. Карта с полутоновой подложкой (Shadow Map) несколько меньше и GIF-, и JPEG-изображения. Что касается карт с фиксированными наборами цветов (Surface Map и Solid Map), то они в формате DjVu меньше или равны по объему GIF-аналогам, и на 20-30% меньше файлов JPEG. Лишь для чисто текстовой страницы файл DjVu уступил не только файлам GIF и PNG, но даже и исходному TIFF-файлу, сохранив небольшое преимущество преимущество только над файлом JPEG.

При этом следует учесть, что все файлы DjVu были подготовлены с максимально возможным качеством (и, соответственно, с минимальной компрессией), тогда как для PNG и JPEG были приняты промежуточные соотношения сжатия и качества.

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

В каких же? Конечно, формат DjVu не подходит для изготовления баннеров, экранных кнопок и прочих графических элементов дизайна. Однако если речь идет о воспроизведении контента, особенно совмещающего текст и графику, равных ему я не вижу. Кое в чем он может выступать как своего рода замена PDF-формата (если не требуется 100-процентная идентичность полиграфического и электронного отображений). Поскольку, при несколько более низком, но отнюдь не принципиально, качестве, он компактней (при небольших объемах текста), проще и быстрее в подготовке. Имея те же возможности в плане навигации по гиперссылкам и многостраничности.

Так что, учитывая отсутствие стандартного для Интернет векторного формата и попытки правообладателей на алгоритм GIF-компрессии получать за это деньги, возьму на себя смелость рекомендовать формат DjVu для представления графического контент весьма широкого плана. А бесплатность инструментария для работы с ним делает его прекрасным дополнением к бесплатной операционной системе Linux.

Несколько слов о 3D-графике

В начало

Copyleft by
Alex Fedorchuk


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2024 LinuxRSP