Linux художнику
Предыдущие главы были посвящены в основном созданию текстовых материалов. Однако текст без иллюстраций — что водка без закуски: полезный эффект достигается, но удовольствия от процесса — мало. Поэтому в данной главе поговорим о средствах подготовки иллюстраций, то есть о графических редакторах: растровых и векторных.
Что нужно для иллюстрирования текстового материала? В первую очередь, как минимум, сама иллюстрация, которая может быть либо создана собственноручно, то есть нарисована, либо воспроизведена с некоего объекта — сфотографирована, отсканирована, захвачена с экрана. Для первой цели служат так называемые "рисовалки" — векторные, как правило, редакторы (можно рисовать и в растровых, но для этого требуется художественный талант). Вторая цель достигается разнообразными специализированными программами захвата изображения.
Далее, иллюстрация подлежит обработке, дабы подчеркнуть те аспекты, которые собственно и иллюстрируют наши тексты (то есть, в конечном счете, мысли) и затушевать все, что от понимания нашей мысли отвлекает. Для чего служат программы обработки изображений — обычно это растровые редакторы.
Наконец, иллюстрация должна быть приведена к виду, пригодному для воспроизведения — полиграфического или электронного, в том числе и для Web. Каждый из способов представления имеет свои особенности и требует специфических приемов, реализуемых во всякого рода конверторах форматов, оптимизаторах и т. д.
Конечно, далеко не всегда каждая из стадий подготовки иллюстраций требует собственного программного инструментария. Более того, развитые графические редакторы обычно в той или иной мере объединяют функции, хотя и в различной степени "продвинутые", подготовки, обработки и представления иллюстраций.
Однако Linux пока не принадлежит к платформам, имеющим уж очень развитые средства работы с графикой. И поэтому большая часть графических Linux-программ может рассматриваться как ориентированные на одну из означенных стадий. А посему в этом порядке я и попробую их рассмотреть, начав, естественно, со средств для первой стадии создания изображений.
рисование произвольных (так называемых Freehand) и ломаных линий (прямые рассматриваются как частный случай последних); | |
непосредственное создание кривых Безье; в терминологии KIllustrator это не то же самое, что произвольные линии; | |
рисование прямоугольников и овалов (при нажатой клавише <Ctrl> — квадратов и кругов); | |
рисование многоугольников (правда, в рассмотренной мной реализации все многоугольники сводились к равностороннему треугольнику). |
Имеются средства ввода текста с возможностью изменения гарнитур, начертаний и кегля. Выгодное отличие от StarDraw — возможность работы с кириллическими шрифтами Type 1 без искажения последних. Текстовые элементы могут вращаться и деформироваться в горизонтальной и вертикальной плоскостях. Однако средств для работы с крупными текстовыми блоками (Paragraph Text, в терминологии CorelDraw) нет и, как будто, не предвидится.
Имеется возможность точечного редактирования линий, в том числе и ограничивающих фигуры. Точки (узлы, в терминологии русской версии CorelDraw) могут быть перемещены, удалены или добавлены. Можно также разорвать линию, прямоугольник или овал, однако способа соединить две линии не обнаруживается. По непонятным причинам средства редактирования линий не применимы к многоугольниками (сиречь, треугольникам). Для редактирования точек на второй линии (или фигуре) требуется предварительно перейти в режим указателя.
Для линий, фигур и текстовых элементов доступно изменение атрибутов: толщины, цвета и стиля линий, шрифтового оформления для текста, заливки — сплошной, градиентной или узорной (Pattern) для фигур. Оно осуществляется либо через контекстное меню по щелчку правой кнопкой мыши (пункт Properties, вызывающий панель с закладками Info, Outline, Fill), либо через главное меню (Edit ¦ Properties с тем же результатом).
В доступной мне версии не имеется никаких средств текстуризации или спецэффектов. Правда, векторное изображение может сопровождаться растровой подложкой, определяемой через пункты меню Edit ¦ Insert ¦ Bitmap. Среди доступных форматов — GIF, JPEG, PNG, ХМР, но, почему-то, не TIFF.
Возможности обмена данными ограничены. Импорт осуществляется только для изображений самого KIllustrator и документов Xfig (fig). Созданные изображения могут быть экспортированы в виде растра (в форматах GIF и ХМР) или записаны как файл Encapsulated PostScript (eps).
Таковы вкратце основные особенности векторного редактора KIllustrator (a более подробного он пока, на мой взгляд, не заслуживает). Правда, он также не единственный пакет этого назначения. Можно назвать еще такие программы, как sketch и Tgif. Однако их можно охарактеризовать словами Атоса из "Трех мушкетеров", сказанными в адрес д'Артаньяна: "Разучилась пить молодежь. А ведь этот еще из лучших". Возможности их не простираются дальше создания несложных линий и фигур, да и то иногда не самым простым и интуитивно понятным способом.
Кроме того, при необходимости в качестве рисовального пакета можно использовать такую программу, как QCad (http://www.qcad.org). Как можно догадаться из названия, это средство автоматизированного проектирования, располагающее развитыми возможностями создания и редактирования линий и фигур. Может он выполнять и различные преобразования, как то: — отражение, отсечение, повороты, построение объектов, привязанных к сетке или к другим объектам, проводить автоматическое определение и простановку размеров. Есть и средства работы с текстами, в том числе и кириллическими, которые строятся в графических его примитивах, независимо от наборов системных шрифтов. Вследствие этого и с печатью изображений с русскими подписями проблем не возникает.
Созданное в QCad изображение записывается в стандартном для CAD-систем формате DXF, понимаемом большинством векторных редакторов. Правда, импорт возможен только из него же,' но не из какого-либо иного распространенного векторного редактора; впрочем, ни один из последних излишней любовью к чужим форматам также не грешен.
К сожалению, в QCad не предусмотрено помещение растровых изображений в качестве подложки, что ограничивает его применение как для целей художественных, так и научно-технических (скажем, картографических). Однако, ввиду общей бедности Linux рисовальными средствами к использованию в таком качестве он пригоден, чем я ни в коей мере не хочу принизить его достоинства в той области, для которой он собственно и предназначен — то есть автоматического проектирования, — которые особенно рельефны на фоне его GPL-лицензии.
Тем не менее, в отношении векторной графики под 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.
Эта программа общепризнанно (и заслуженно) считается одним из наиболее успешных проектов, выполненных в рамках открытых исходных текстов. Текущая версия GIMP (1.1.2x) ныне входит в стандартный комплект практически всех распространенных дистрибутивов. Сообщения ее почти полностью переведены на русский язык. К сожалению, за исключением справочной системы, что вызвано объективными причинами: он до сих пор не дописан, а хорошего инструмента для удобной модификации перевода после изменения оригинала документа нет.
Правда, использованная при этом терминология несколько отличается от принятой в русских версиях графических редакторов для Windows. Что, вместе с изначальными терминологическими особенностями GIMP, может вызвать определенные трудности в его освоении, особенно при наличии привычки к русской версии Photoshop. Поэтому я постараюсь ниже приводить при необходимости параллельно и оригинальную, и русскоязычную терминологию. К тому же некоторые пункты меню так и не получили адекватного перевода на русский язык.
При запуске GIMP на экране появляется инструментальная панель с изменяемым размером и четыре дополнительные панели: Выбор кистей, Слои, Каналы и Контуры, Параметры инструментов.
Меню главной панели содержит три пункта: Файл, Расширения (Xtns), Справка. В первом — ограниченный набор базовых операций: открытие и создание файла, выход из программы, установки (в том числе настройка инструментов, таких как кисти, цветовые палитры и т. д.). Здесь же захват изображения с экрана или путем сканирования, а также Диалоги, вызывающие многочисленные дополнительные (помимо видимых по умолчанию при запуске) панели.
В пункте Xtns — базы данных дополнительных модулей (plug-in) и скриптов, браузеры баз данных и Web-ресурсов, а также сами скрипты, в том числе script-fu, обуславливающие своеобразие программы. В пункте Справка — индексированные и контекстные справки, совет дня, а также отладчик екриптов.
Все прочие манипуляции совершаются (после открытия или создания файла) щелчком правой кнопки мыши на изображении. Этим вызывается всплывающее меню, содержащее многочисленные пункты:
File (Файл); | |
Edit (Правка); | |
Select (Выделение); | |
View (Просмотр); | |
Image (Изображение); | |
Layers (Слои); | |
Tools (Инструменты); | |
Dialogs (Диалоги); | |
Filters (Фильтры); | |
Guides; | |
Video (Видео); | |
Script-Fu. |
Назначение первого пункта — понятно, это манипуляции с файлами, а также общепрограммные настройки и печать. Следует отметить, что GIMP имеет собственный оригинальный формат файла — XCF. Впрочем, необходимость в его использовании (по крайней мере, при эпизодическом применении) возникает нечасто, так как он позволяет напрямую открывать и редактировать файлы практически в любом растровом формате, включая форматы Adobe Photoshop, AVI, EPS, WMF и многие-многие другие. И по умолчанию (командой Save) сохраняет измененный файл в том же формате.
Функция экспорта осуществляется командой Save as. Список экспортируемых форматов также столь же широк, как и набор импортируемых типов файлов. Интересно, что при экспорте учитывается характер изображения:
скажем, файл в индексированных цветах (например, GIF) нельзя напрямую сохранить в полноцветном виде (как TIFF или JPEG) и, наоборот, для сохранения tif-файла в формате GIF необходимо предварительно выполнить индексацию. Сначала это кажется непривычным, но определенная логика в этом есть, хотя при обработке большого количества изображений несколько утомляет.
Пункт Edit (Правка) в основном аналогичен таковому стандартных Windows-программ: те же вырезание, копирование и вставка, Undo и Redo (число их уровней устанавливается в Prefeneces, по умолчанию — 5). Смысл остальных подпунктов обычно понятен из их названий (заливка, обводка и т. д.), хотя, если есть привычка к англоязычной терминологии, некоторые из них понимаются не с первого раза.
Пункты Выделение и Просмотр также не вызывают затруднений. В первом — всякого рода выделения (в том числе цветовых областей) и запись в виде канала. Во втором — изменение масштаба просмотра изображения (с шагом, кратным двум, или точка за точкой), скрытие/показ линеек, направляющих и привязка к последним, а также открытие нового окна (с текущим файлом в нем).
Следующие манипуляции с рисунком — в пункте Image (Изображение). Здесь его можно преобразовать (в RGB, индексированные цвета или градации серого), трансформировать, вращать, обрезать и т. д. Здесь же — работа с альфа-каналами и цветовыми палитрами. Интересны подпункты Resize и Scale (в русском переводе — Размер холста и Масштабирование соответственно). Первый — обрезает рисунок до заданного размера, тогда как собственно изменение его размера осуществляется посредством Scale (то есть масштабированием). Что так же несколько непривычно по первому разу.
С пунктом Layers (Слои) все ясно — это действия со слоями. А вот в пункте Tools (Инструменты) — масса всяких подпунктов. Здесь и выделение областей всяческой формы (многоугольников, полигонов, произвольной формы и т. д.), и перемещение, и обрезание, и зеркальное отражение, и вращение (что частично совпадает с некоторыми подпунктами из пункта Image (Изображение)).
Сюда же, в соответствии с названием, попадают инструменты типа кистей, ластика, пульверизатора и прочего. И здесь же — средства работы с текстом. Следует заметить, что многие эти действия доступны и из главной инструментальной палетки, которая является плавающей и совершенно не зависит от окна с изображением.
Пункт Dialogs (Диалоги) аналогичен таковому меню главной панели. Это вызов всякого рода дополнительных панелей: слоев, каналов, кистей, палитр, шаблонов, градиентных заливок и т. д.
Следующий пункт— Filters (Фильтры)— аналог соответствующего в Photoshop. И подпункты его примерно совпадают со штатным набором последнего. Интересно тут то, что многие фильтры — неактивны; можно предположить, что они существуют в природе, но не входят в стандартную поставку или не устанавливаются по умолчанию. Впрочем, обычно это значит, что данный фильтр просто не применим к типу открытого файла. Как, скажем, размытие по Гауссу по определению нельзя применить к файлу формата GIF.
Самое интересное в GIMP — пункт Script-Fu, не имеющий, насколько я знаю, аналогов в других растровых редакторах. Это набор скриптов для создания всякого рода спецэффектов. Что в целом близко к назначению фильтров, но отличается тем, что скрипты эти может писать каждый, если, разумеется, знает соответствующий язык (Tel, Scheme или Peri). To есть мы имеем дело с неким набором интерпретируемых команд, посредством которых можно создавать какие-нибудь уникальные эффекты в личных (и не только) целях.
Польза от скриптов еще и в том, что можно однократно запрограммировать какой-либо эффект (например, падающей капли, как это сделано Алексеем Костаревым на сайте Лукойла (http://www.lukoil-penn.ru/) и затем одним нажатием клавиши получать данный эффект для различных исходных изображений — очень экономит время, когда надо сделать не одну а с десяток картинок.
Надо сказать, что большинство подпунктов скриптового меню неактивны (по аналогии с фильтрами, их надо устанавливать отдельно). Однако некоторые любопытные эффекты работают. В отличие от применения фильтров, действие скриптов отменить (командой Undo) нельзя.
Вот, вкратце, обзор основных возможностей GIMP. Что же из этого изобилия можно было приспособить для поставленной мной задачи?
Поскольку предполагается, что исходный tif-файл при изготовлении был доведен до кондиции с точки зрений качества, единственное, что сейчас требуется от GIMP — это трансформировать его последовательно в GIF, JPEG и PNG с минимальными потерями и максимальным сжатием.
Для чего сначала произведем индексацию (подпункт Indexed в пункте Image (Изображение)). Здесь перво-наперво нам предлагается выбор палитры: полной 256-цветной, Web-палитры из 216 цветов, заказной (которую можно выбрать из готовых и потом отредактировать) или однобитной черно-белой. Здесь же включается или отключается dithering.
Получив рисунок в индексированных цветах, просто сохраняем его (Save as) как GIF. Для чего вводим новое имя (имя исходного tif-файла не наследуется), выбираем определение типа (Determine file type — GIF, расширение при этом присваивается автоматически), и жмем кнопку ОК. Нас спрашивают, желаем ли мы иметь черезстрочный GIF (по умолчанию выключено) и не требуется ли комментарий (по умолчанию — Made with GIMP, но можно ввести свой; поскольку наша цель, кроме всего, еще и сжатие, последнее явно лишнее). Интересно, что нет способа напрямую задать прозрачность GIF-файла, подобно тому, как это делается в Photoshop. Для этого нужно выделить необходимую область и произвести операцию чистки (<Ctrl>+<K>), после чего при записи в GIF она будет прозрачной.
Следующий этап — преобразование исходного TIFF-файла в формат JPEG. Эта операция еще проще, поскольку не требует предварительного индексирования, а только задания степени компрессии/качества (в долях единицы). Аналогично и сохранение в формате PNG, где, правда, задается дополнительный вопрос о той же черезстрочной развертке.
И как же GIMP справляется с нашими основными задачами — сохранением качества и компрессией? С первой — вполне нормально, GIF-файлы и в 256-, и в 216-цветной палитрах получаются вполне пристойными. Причем практически неотличимыми друг от друга, что бывает не всегда.
С компрессией — неоднозначно. В 256-цветной палитре рисунок размером 600х540 пикселов (исходный tif— 970 Кбайт) достиг научно-фантастического размера более 300 Кбайт (в два раза больше, чем при экспорте из Photoshop при аналогичных установках). Правда, при переходе к Web-палитре он волшебным образом уменьшился почти втрое — до 125 Кбайт (повторяю, с точки зрения качества они при этом были неотличимы). Можно предположить, что путем редактирования палитры его можно уменьшить еще больше, что будет сопоставимо с результатами работы специализированных GIF-оптимизаторов для Windows (из которых большинство — платные, и весьма дорогие для shareware).
При трансформации того же файла в формат JPEG — результат вполне ожидаемый: чуть больше 300 Кбайт при минимальном сжатии, около 15 Кбайт — при максимальном и чуть меньше сотни — при промежуточном (50%). В первом случае рисунок был почти читаемым, но для моих целей непригодным (артефакты вокруг букв и рисованных границ), в последнем — откровенно плох. Хотя при максимальном сжатии — еще хуже. При преобразовании в формат PNG (с параметрами компрессии по умолчанию) качество нареканий не вызывало, но размер итогового файла выходил за рамки приличий.
Таким образом, GIMP в современном его виде (и без факультативных средств в виде фильтров и скриптов) вполне пригоден для выполнения большинства обыденных задач обработки растровой графики и представления ее в Интернете. К достоинствам его следует отнести предельную логичность организации и простоту использования. И, как следствие — простоту освоения, особенно для человека, не испорченного Photoshop (авторы последнего явно больше тройки по классической логике не имели). С точки зрения возможностей — более чем достаточен для подавляющего большинства задач.
Недостатки — изрядная медлительность, особенно при трансформациях или применении таких ресурсопожирающих фильтров, как размытие; видимо, оптимизация последних версий Photoshop под ММХ дает о себе знать (припоминаю, что раньше и там при сходных операциях можно было не только покурить, но и выпить-закусить). А лично меня больше всего раздражала необходимость отключения вставки комментария при каждой записи (и перезаписи!) файла любого типа (не только GIF или JPEG, но и TIFF, и PNG). Может быть, авторы пойдут мне на встречу и сделают ее по умолчанию выключенной? Все же и GIF, и JPEG, и PNG — форматы, в первую очередь, для Интернета, а там каждый лишний байт — лишний... Впрочем, это так, придирка.
Однако GIMP — все же, для начала, средство для обработки изображений. Для их представления многие его функции заведомо избыточны. С другой стороны, в нем нет удобного каталогизирования изображений. Согласитесь, что открывать многие десятки графических файлов, чтобы выбрать из них два-три нужных — занятие не самое увлекательное...
Правда, для GIMP разработан соответствующий дополнительный модуль (plug-in) GUASH позволяющий отобразить каталог изображений и загружать необходимый. Но в стандартную поставку он не входит.
Однако не "GIMP'ом" единым жив человек, готовящий графику, особенно для представления в Интернете. Даже под Linux. В ряде случаев полезно воспользоваться такой программой, как CompuPic.
CompuPic
Это бесплатный для некоммерческого использования продукт, доступный (в виде гргп-пакета размером 1,8 Мбайт) на сайте ее производителя — фирмы Photodex: http://www.compupic.com или http://www.photodex.com/. Версия под Linux портирована с платформы Windows, что обуславливает многие ее особенности.
По своему предназначению CompuPic — менеджер графических файлов типа Ulead ImPal или Photolmpact под Windows, например. После не вызывающей проблем распаковки и запуска появляется окно следующего вида:
слева наверху — дерево каталогов (папки, содержащие графические файлы, выделены цветом), в правой — содержимое выбранного каталога в виде значков; те из них, которые соответствуют известным программе графическим файлам (среди которых BMP, TIFF, GIF, JPEG, PNG, PSD и другие), представляют собой их миниатюризованные изображения; в левом нижнем углу — превью выбранного файла. Щелчок по нему (или непосредственно по пиктограмме) вызывает файл для редактирования.
Это — вид по умолчанию, который несложно настроить. Дерево каталогов может быть протянуто на любую глубину, или, наоборот, свернуто. Заголовки папок могут быть выделены (полужирным начертанием). Список файлов может быть представлен в виде значков трех вариантов, или в виде текстового списка (полного или сокращенного). К сожалению, мне не удалось настроить ни начертание, ни размер шрифта — имеющийся уж больно мелок.
Кроме того, имеется возможность просмотра в виде полноэкранного слайд-шоу, автоматического или в произвольном порядке. Ну и еще всяческие опции, в частности, индексирование каталога. В результате этого просмотра создается один или несколько (в зависимости от объема каталога) файлов с миниатюрами всех имеющихся изображений. По умолчанию это JPEG-файл размером 640х480 пикселов, но формат и размер его, а также вид могут быть настроены. Так, среди выходных форматов могут быть указаны также GIF и PNG. Настраивается также вид верхних и нижних колонтитулов, по умолчанию сопровождающих каждый файл, и вид подрисуночных подписей.
В общем — простая и удобная база данных графических изображений. Функционально сходная, повторяю, с Ulead ImPal. В отличие от последнего, как будто не позволяется подключить внешний графический редактор. Однако имеются собственные функции редактирования изображения, ограниченные, но в большинстве случаев вполне достаточные.
Как уже говорилось, щелчок левой кнопкой мыши (двойной, что необычно для Х Window, сказывается тяжелое наследие Windows-режима) по пиктограмме открывает окно редактирования изображения. А здесь по щелчку уже правой кнопкой доступны (помимо стандартных операций с файлами, вырезания, вставки, масштабирования вида, вызова помощи и т. д.) многочисленные манипуляции непосредственно над рисунком (пункт меню Image).
Среди них:
корректировка яркости, контрастности, цветовой палитры, резкости и тому подобное, вплоть до текстуризации; | |
вращение: по и против часовой стрелки через 90°, а также на произвольный угол, обращение по горизонтали или вертикали; | |
изменение размера изображения — произвольное или в соответствии с экранным разрешением; | |
конвертирование в различные цветовые режимы, инвертирование размещения текста; к сожалению, только латиницей — ни с одной из русских клавиатурных раскладок у меня ничего не получилось; | |
обрезание рисунка. |
Результаты этих манипуляций могут быть сохранены в различных форматах, среди которых — BMP, PCX, TIFF, GIF, JPEG, PNG и даже PSD. Следует заметить, что при закрытии отредактированного рисунка предложение сохранить изменения не последует, об этом нужно помнить самому.
Качество изображения, получаемого при всех опробованных мной экспортных фильтрах, вполне приличное. А о размере получившихся файлов можно судить по табл. 9.1.
Таблица 9.1. Сопоставление объемов графических файлов, полученных различными программами
Формат |
Объем файла1, байт |
Объем файла2, байт |
Объем файла3, байт |
Объем файла4,байт |
TIFF (исходный) |
799604 |
726366 |
727692 |
720492 |
GIF Web Graphics Optimizer |
12023 |
7698 |
57730 |
11135 |
GIMP CompuPic |
61929 52345 |
58261 68726 |
42325 54670 |
12250 212310 |
JPEG Web Graphics Optimizer GIMP CompuPic |
24333 20141 30816 |
13518 15655 21620 |
41220 65371 71381 |
19181 27620 34179 |
PNG GIMP CompuPic |
15000 14690 |
'210958 211601 |
155800 120711 |
16636 16602 |
В качестве тестовых изображений использовались основные виды графики, характерной для геологии: файл_1 — традиционная геологическая карта;
остальные — различные типы карт, построенные по данным GTOP030 (USGS): файл_2 — Image Map, файл_3 — Shadow Map, файл_4 — Surface Map. Исходные TIFF-файлы получены экспортом из CorelDraw 8 и Surfer 6. Для сравнения приведены размеры файлов, полученные экспортом из GIMP и (для файлов GIF и JPEG) после обработки программой Web Graphic Optimizer — одним из лучших инструментов, существующих с этой целью под Windows. Вследствие очень различного подхода при обработке изображений в этих трех программах, все манипуляции над исходными файлами выполнялись при установках по умолчанию.
Думается, что в комментариях таблица не нуждается. Подтверждая ту глубокую истину, что для каждого типа изображений следует подбирать свой формат и свою программу преобразования. Скажу только, что в отношении размера файлов во всех поддерживаемых форматах Web Graphic Optimizer держит безусловное первенство почти по всем позициям. Что естественно, поскольку именно (и только) для этого он и предназначен. Данный факт открывает направление дальнейшего совершенствования Linux-графики — создание специализированных графических оптимизаторов для Интернета.
Программа CompuPic, при, всех своих достоинствах, обладает одним ощутимым недостатком, вытекающим из ее изначально коммерческой природы. А именно, по прошествии некоторого времени она отказывается работать с файлами в форматах TIFF и GIF. To есть считать их можно, и сохранить в форматах, например, 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 вполне справляется. Оптимизация его основана на том, что изображение с большим количеством цветовых переходов (например, фотография) как бы отделяется от штриховых элементов и текста (компрессируемыми отдельно) и сжимается /-по алгоритму, сходному с 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>, то есть осуществлять ее следует в режиме администратора. Однако не исключается и пользовательская инсталляция. Для этого, соответственно, каталоги следует определить внутри своего пользовательского каталога.
Инсталлировав пакеты, можно посмотреть, для чего же они предназначены. Пакет djvu включает два основных компонента — djvuencode и djvudecode. Первый, как и следует ожидать, предназначен для преобразования растровых графических файлов (в форматах TIFF, BMP, JPEG, GIF и еще нескольких) в формат DjVu. Второй — для обратной процедуры. Пакет djedit позволяет создавать на DjVu-изображениях активные области с привязанными к ним гиперссылками (на HTML- или DjVu-файлы). Кроме того, он
включает автономный модуль просмотра DjVu-изображений — djview и средства создания многостраничных DjVu-документов версии 2.0 — djvuindex и djvupack. В пакете djvumuiti предусмотрены средства создания многостраничных DjVu-документов версии 3.0 — djvujoin и djvubundle, а также конвертации версии 2 в версию 3 —
djvureindex.
Все компоненты трех пакетов работают в консольном или терминальном режиме, за исключением графических модулей djedit и djview.
Как его делать
Процесс создания DjVu-документа проходит в несколько этапов. Сначала, естественно, следует изготовить собственно DjVu-изображения. Для чего, как уже говорилось, используются команды
djvuencode [options] исходный файл.* целевой файл-djvu
ИЛИ
djvuencode [options] файл! [... [файл#] ] целевой каталог
Список опций можно получить, набрав в командной строке
djvuencode -h
Их довольно много, но наиболее существенны две: -р или -photo для фотореалистического режима и -d или -dpi для режима документа.
Фотореалистический режим является режимом по умолчанию, при отсутствии явного указания каких-либо опций. Он предназначен для обработки оригинальных изображений и обеспечивает оптимальное соотношение качества и размера.
Режим документа предназначен для обработки сканированных изображений, совмещенных с текстом. Он требует еще одного параметра — разрешения (м), каковых можно выбрать три: 100, 200 или 300 (что представляет собой указание на разрешение в dpi).
Во избежание недоразумений следует сказать, что под разрешением в данном случае подразумевается нечто прямо противоположное общепринятому, а именно, разрешение, с которым сканировался исходный документ. Поскольку именно в соответствии с этим осуществляется его преобразование. То есть, чем ниже исходное разрешение сканирования, тем больше программа пытается улучшить изображение. В результате для любого экранного изображения при N, равном 100, мы имеем максимальный размер файла и наилучшее качество, а при 300 — наоборот, минимальный файл и низкое качество. Что понятно: ведь экранное изображение имеет разрешение заведомо не выше 85 dpi (обычно — меньше).
Если команда djvuencode дана без опций — по умолчанию выбирается фоторежим. Нужно сказать, что в этом случае для экранных растровых изображений, по сравнению с режимом документа, достигается более высокое качество (при размере файла в полтора-два раза меньше).
Полученное DjVu-изображение не может быть вставлено в HTML-документ посредством тега <img>. Однако его можно вызвать с HTML-страницы с помощью гиперссылки:
<а href="имя_файла.djvu" [target="имя_окна"]>
После этого DjVu-изображение будет просматриваться через браузеры (Netscape Navigator и Internet Explorer — при наличии соответствующего plug-in, о чем ниже) точно так же, как и HTML-страница с помещенным в нее GIF- или JPEG-изображением.
Кроме того, на самом DjVu-изображении можно создать активные области (image map) с привязанными к ним гиперссылками на HTML- или DjVu-файлы. Для этого служит команда djedit, запускаемая из Х Window в окне терминала или мини-командной строки, имеющейся в большинстве оконных менеджеров. Для начала она предлагает выбрать 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.
DjVu 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, если в режиме администратора (или после команды su) — установка public.
Plug-in для Windows (как Netscape Navigator, так и Internet Explorer) — самораспаковывающийся архив размером около 600 Кбайт. Запуск его приводит
к автоматической установке дополнения, каковая проистекает без всяких осложнений.
После установки plug-in и загрузки через браузер DjVu-изображения в нижней части окна браузера появляется дополнительная панель (несколько отличающаяся в разных браузерах), содержащая средства управления для DjVu-изображения: печати, масштабирования, навигации по страницам (для многостраничного DjVu-документа). Масштабирование возможно как в сторону уменьшения (до 25% от исходного размера), так и увеличения (до 999%). Реально изображение целесообразно увеличивать не более чем до 300% от исходного: при больших масштабах качество существенно падает. Хотя текст не теряет читабельности, а рисованные элементы — четкости вплоть до максимального увеличения.
Что же дает применение формата DjVu по сравнению с традиционными видами Интернет-графики?
Чтобы сравнить формат DjVu по качеству изображения и размеру с широко применяемыми форматами Интернет-графики, было изготовлено пять тестовых изображений в формате TIFF (полученных путем экспорта из StarDraw), каждый из которых иллюстрирует один из видов графики, применяемой, скажем, в геолого-картографической практике (табл. 9.2). Это серия из трех карт, построенных по данным формата GTOP030 DEM (Digital Elevation Modelling, трехмерные модели высот): полноцветная карта (Image Map — не путать с навигационными картами image map), полутоновая Shadow Map и цветная псевдотрехмерная блок-диаграмма Surface Map, к одной из которых (Shadow Map) прилагается текстовая легенда (Legend). В дополнение к ним приведена традиционная геологическая карта, отрисованная по данным полевых наблюдений (Solid Map). Все четыре карты, помимо текстовых подписей, содержат также рисованные геологические границы.
Каждый из этих файлов был преобразован в DjVu-изображение программой djvuencode в режиме фотокачества. Для сравнения приведены те же изображения, конвертированные в форматы GIF, JPEG и PNG. Конвертирование осуществлялось программой CompuPic с параметрами по умолчанию:
256-цветная палитра для GIF, 75%-ное сжатие для JPEG и 6-й уровень компрессии (при 24-битной палитре) для PNG.
Таблица 9.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.1а. Преобразование в PNG, GIF и JPEG выполнено программой CompuPic (все параметры компрессии — по умолчанию), в формат DjVu — SDK DjVu фирмы AT&T, параметры компрессии — фотокачество. |
Рассмотрение полученных изображений показывает, что DjVu-инструмен-тарий вполне прилично справился с поставленной задачей. Качество итоговых изображений почти не уступает исходному TIFF-файлу, что особенно ярко проявляется в отношении Shadow Map, плохо передаваемой всеми традиционными форматами Интерент-графики, за исключением PNG (но — ценой размера файла).
На всех DjVu-изображениях обращает на себя внимание четкая передача текста. И это при том, что для подписей специально был выбран шрифт с засечками, обычно хуже передаваемый в растровой форме, чем шрифты Sans Serif. Характерно также полное отсутствие артефактов вокруг рисованных границ, неизбежно возникающих при использовании формата JPEG.
Что касается чисто текстовой страницы, то воспроизведение ее (по крайней мере при достаточно крупном кегле) по качеству приближается к формату PDF.
Достоинства формата DjVu особенно наглядно проступают, если рассмотреть объем получающихся файлов.
Рассмотрение таблицы показывает, что все четыре типа изображений в формате 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.