Максим Отставнов - Прикладные свободные программы и системы в школе
Важной особенностью «OpenDraw» является использование механизма стилей для форматирования графических элементов. Использование стилей в векторной графике вполне сопоставимо с использованием того же механизма при оформлении размеченного текста (см. раздел 4.1) и имеет те же преимущества перед «жестким» форматированием/оформлением.
Этот прием позволяет серьезно облегчить вариантное оформление рисунков, отказавшись от «жесткого» (такого, при котором для каждого объекта или группы объектов характеристики задаются вручную) форматирования объектов.
Например, при подготовке схемы оргструктуры учреждения можно создать стиль, которым оформляются изображения подразделений, допустим, с голубой заливкой в черном контуре в 3 пункта толщиной. Если позднее потребуется изобразить те же подразделения желтыми прямоугольниками без рамки, не нужно будет помечать их вручную (представьте, насколько это может быть трудоемко даже для относительно простой организации типа средней школы), достаточно будет лишь изменить параметры стиля. Более того, можно определить стиль и для стрелок, показывающих связи между подразделениями, с «наследованием» цвета от цвета стиля подразделений, если предполагается, что их цвет должен совпадать.
Стиль можно определить и для слайда в целом, что позволяет единообразно оформлять серию рисунков. Набор стилей можно объединить в шаблон (сохраняемый в отдельном файле), если предполагается регулярное его использование.
«Логические операции» над объектами, «3D» и морфинг
Интересной функцией «OpenDraw» является наличие так называемых логических операций над объектами. Два или более заполненных контура могут быть скомбинированы особым образом, что порождает новый объект, являющийся объединением форм, их пересечением или «вычитанием» одной формы из другой.
Еще одной интересной особенностью программы является встроенная в нее базовая функциональность имитации трехмерной графики (3D-функции). Она ограничена 1) конструированием тел вращения, 2) преобразованием в тела вращения произвольных двумерных фигур, а также 3) экструзией (приданием последним «глубины»). Трудно понять необходимость рутинного конструирования тел вращения в «офисной» графике, однако для школы возможность такой демонстрации возможностей компьютерной графики может быть весьма полезна.
Двумерный морфинг (плавное перетекание фигур) реализован в «OpenDraw» не лучшим с точки зрения эстетического результата образом, однако интересным дидактически: на самом деле, программа просто группирует заданное (в качестве «количества шагов» морфинга) количество «промежуточных» (по форме и цвету) фигур между морфируемыми фигурами. Созданную таким образом группу можно разгруппировать и посмотреть, что и как, собственно, программа сделала.
Векторизация растровых изображений
Рис. 4-9Выше уже было замечено, что, хотя преобразование векторного изображения в растр — элементарная техническая задача, гарантированное обратное преобразование в общем случае невозможно. Тем не менее, существуют программы, которые пытаются это сделать.
«OpenDraw» обладает функцией векторизации, «спрятанной» в меню «Преобразовать» под кличкой «В многоугольник». Если применить данный пункт меню к импортированному растровому изображению, появится окно предпросмотра с возможностью задать некоторые параметры и увидеть результат.
Ничего мистического в этой функции нет: программа ищет связные области, залитые одним или близкими цветами, и описывает их контур как многоугольник. Затем она группирует полученные фигуры одного цвета и переходит к следующему цвету или группе цветов. Результирующий векторный объект представляет собой группу, в свою очередь состоящую из цветовых групп.
Более глубокого анализа программа не проводит (в принципе, можно было бы каждый выделенный объект пытаться аппроксимировать с заданной точностью отрезком, коническим сечением или кривой Безье; это позволило бы распознать элементарные геометрические фигуры, например, просканировав простой рисунок).
Эта функция предусматривает слишком мало параметров, чтобы быть особенно полезной на практике, однако для демонстрации того, в чем состоит процесс векторизации, она вполне подходит.
Глава 5. Редактор растровой графики «ГИМП»
5.1 Источники и параметры растровой графики
Обычным источником растровых изображений является сканер — устройство, «проходящее» (сканирующее) лист бумаги или кадр фотопленки точка за точкой и передающее компьютеру значения, соответствующее интенсивности базовых цветов в каждой точке. Все большей популярностью пользуются цифровые фотокамеры — аппараты, вместо фотопленки фокусирующие изображение на светочувствительной матрице, передающей цифровую запись изображения на энергонезависимый носитель информации (гибкий диск или т.н. флэш-карту), который затем может читаться компьютером.
Растровые изображения могут также создаваться человеком на компьютере с помощью устройств координатного ввода («мыши» или более подходящего для этой цели графического планшета) или синтезироваться различными программами.
Важнейшими параметрами растрового изображения являются его растровый размер (в точках) и «глубина цвета» (количество бит, используемых для представления цвета каждой точки). Эти параметры часто записывают в виде 1024х728x24, что означает 1024 точки по горизонтали, 728 точек по вертикали и 24 бит на цвет (двадцати четырех бит достаточно для получения «фотореалистичных» изображений, дальнейшее повышение разрядности не приводит к увеличению качества отображаемых или печатаемых современными средствами изображений, хотя в промежуточной обработке или при синтезе изображений иногда используется большие значения глубины цвета). Еще одним параметром, предусмотренным некоторыми форматами хранения растровой графики, является его «масштаб», который принято измерять в точках на дюйм (DPI); это чисто информационный параметр, который может учитываться при печати изображений, но не влияет на возможность их обработки.
5.2 Источники и параметры и форматы представления растровой графики
За тридцатилетнюю историю компьютерной графики разработано великое множество (сотни) форматов хранения изображений. Большинство из них является плодом несогласованности «технического творчества» отдельных групп исследователей и компаний, а также отражает особенности давно вышедших из употребления специфических устройств. Важными свойствами форматов являются присущие им внутренние ограничения, из которых наиболее значимы ограничения на глубину цвета, поддерживаемые цветовые модели («мониторная» RGB, «полиграфическая» CMYK и т.д.) возможность сохранения нескольких слоев изображения (понятия слоев, контуров и масок здесь не обсуждаются), наличие т.н. «альфа-канала» (фиктивного «цвета», соответствующего степени прозрачности изображения при наложении его на другое изображение) и поддерживаемые алгоритмы сжатия.
Применяемые в растровой графике алгоритмы сжатия подразделяются на неразрушающие и форматы с потерей качества (последние используют психофизиологическую модель человеческого зрения для того, чтобы избавиться от незначимых деталей изображения, что несколько снижает его качество, но позволяет добиться гораздо большей компактности кода).
Практически универсальными являются форматы TIFF (обычно применяемый в полиграфии, допускает лишь неразрушающее сжатие), PNG (наиболее удобный для представления графических данных в мультимедийных системах и WWW, допускающий неразрушающее сжатие), а также медленно вытесняемые последним JPEG (допускающий сжатие с потерями) и GIF (ограниченный 8 бит (256) цветами). Кроме того, многие графические редакторы (включая описанный ниже «ГИМП») обладают собственным форматом, позволяющим сохранять в том же файле массу вспомогательной информации, полезной при продолжающейся более одного сеанса работе с файлами.
5.3 Общие сведения о «ГИМП»
GNU Image Manipulation Program (Программа ГНУ для манипуляции изображениями), или сокращенно GIMP — потомок курсового проекта двух студентов, Питера Маттаса и Спенсера Кимболла (1985-86 гг.).
За восемь лет и при участии десятков программистов «ГИМП» вырос в один из самых насыщенных функциональностью графических редакторов, уступающих лишь «под завязку» набитому сторонними модулями редактору Photoshop[72]. Текущая стабильная версия — 1.2 (как и в некоторых других проектах нечетным «малым» номерам соответствуют экспериментальные (разработческие) версии, а четным — стабильные).
Интересно, что в рамках проекта «ГИМП» была создана библиотека работы с экранными примитивами GTK (ныне GTK+), являющаяся на сегодня одной из самых развитых и широко используемых в своем классе (в частности, на GTK+ основана популярная графическая операционная среда «Гном»).