Двумерный морфинг (плавное перетекание фигур) реализован в «OpenDraw» не лучшим с точки зрения эстетического результата образом, однако интересным дидактически: на самом деле, программа просто группирует заданное (в качестве «количества шагов» морфинга) количество «промежуточных» (по форме и цвету) фигур между морфируемыми фигурами. Созданную таким образом группу можно разгруппировать и посмотреть, что и как, собственно, программа сделала.
Векторизация растровых изображений
Выше уже было замечено, что, хотя преобразование векторного изображения в растр – элементарная техническая задача, гарантированное обратное преобразование в общем случае невозможно. Тем не менее, существуют программы, которые пытаются это сделать.
«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+ основана популярная графическая операционная среда «Гном»).
«ГИМП», доступный для всех популярных настольных платформ (включая стандартные, а также «Майкрософт Уиндоуз», «МакОС» и др.), широко используется для работы над WWW и мультимедийной графикой, обработки любительского, репортажного и даже художественного фото, ретуширования кинокадров. Правда, для последней цели чаще используется модификация, известная как FilmGIMP, ее, в частности, активно эксплуатировали при монтаже первого фильма о Гарри Поттере.
«ГИМП» редко используется для предпечатной подготовки графики: в нем пока нет поддержки «полиграфических» цветовых моделей и системы цветоделения. Еще одним ограничением текущих версий «ГИМП» является относительно низкая производительность, затрудняющая работу с действительно большими (сотни тысяч точек) и сложными (десятки слоев) изображениями. Для создания и обработки достаточно компактных и простых изображений, а также для их отображения на мониторе и печати на оборудовании потребительского класса эти ограничения не важны.
72
Стоит отметить, что стоимость одной копии последнего, самого по себе не дешевого, вместе со всеми такими модулями составляет несколько тысяч долларов