Компьютерная графика
🕛 10.01.2007, 13:49
Одним из популярных направлений использования персонального компьютера является компьютерная графика. В каждой организации возникает потребность в рекламных объявлениях, листовках, буклетах и т.д. В связи с появлением и развитием Интернета появилась широкая возможность использования графических программных средств. Росту популярности графических программных средств способствовало развитие World Wide Web ("всемирной паутины"), которая связала воедино миллионы "домашних страниц".Различают три вида компьютерной графики: растровая графика, векторная графика и фрактальная графика. Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге.
Растровую графику применяют при разработке электронных (мультимедийных) и полиграфических изданий. Иллюстрации, выполненные средствами растровой графики, редко создают вручную с помощью компьютерных программ. Для этой цели сканируют иллюстрации, подготовленные художником на бумаге, или фотографии. В последнее время для ввода растровых изображений в компьютер нашли широкое применение цифровые фото- и видеокамеры. В Интернете пока применяются только растровые иллюстрации.
Программные средства для работы с векторной графикой, наоборот, предназначены для создания иллюстраций и в меньшей степени для их обработки. Такие средства широко используют в рекламных агентствах, дизайнерских бюро, редакциях и издательствах. Оформительские работы, основанные на применении шрифтов и простейших геометрических элементов, решаются средствами векторной графики проще. Имеются примеры высокохудожественных произведений, созданных средствами векторной графики, но они скорее исключение, чем правило.
Программные средства для работы с фрактальной графикой предназначены для автоматической генерации изображений путем математических расчетов. Создание фрактальной художественной композиции состоит не в рисовании или оформлении, & в программировании. Фрактальную графику чаще используют в развлекательных программах.
Растровая графика
В растровой графике основным элементом является точка. При экранном изображение эта точка называется пикселем.
Основная проблема и недостаток при использовании растровых изображений - это большие объемы данных. Для работ с большеразмерными иллюстрациями типа журнальной полосы требуются компьютеры с большими размерами оперативной памяти (128 Мбайт и более). Такие компьютеры, естественно, должны при этом иметь и высокопроизводительные процессоры.
Вторым недостатком растровых изображений является невозможность их увеличения для рассмотрения деталей. Так как изображение состоит из точек, то увеличение изображения приводит только к тому, что эти точки становятся крупнее. Никаких дополнительных деталей при увеличении растрового изображения рассмотреть не удается. Само увеличение точек растра визуально искажает иллюстрацию и делает ее грубой. Этот эффект называется пикселизацией.
Любое изображение, в том числе и трехмерное, состоит из графических примитивов, поэтому необходимо знать специальные методы генерации изображения, вычерчивание прямых и кривых линий, закраски многоугольников, создающей впечатление сплошных объектов. Рассмотрим некоторые из этих методов.
Алгоритмы вычерчивания отрезков. Экран дисплея можно рассматривать как матрицу дискретных элементов (пикселей), каждый из которых может быть подсвечен. В связи с этим нельзя непосредственно провести отрезок из одной точки в другую. Процесс определения пикселей, наилучшим образом аппроксимирующих заданный отрезок, называется разложением в растр. Для горизонтальных, вертикальных и наклоненных под углом 45° отрезков выбор растровых элементов очевиден. При любой другой ориентации выбрать нужные пиксели труднее. Существует несколько алгоритмов выполняющих эту задачу, например, цифровой дифференциальный анализатор и алгоритм Брезенхема.
Алгоритм Брезенхема для генерации окружностей. В растр нужно разлагать не только линейные, но и другие, более сложные функции. Разложению конических сечений, т.е. окружностей, эллипсов, парабол, гипербол, посвящено значительное число работ. Наибольшее внимание уделено окружности. Один из наиболее эффективных и простых для понимания алгоритмов генерации окружности принадлежит Брезенхему.
Вначале необходимо сгенерировать только одну восьмую часть окружности. Остальные ее части могут быть получены последовательными отражениями. Если сгенерирован первый октант (от 0° до 45° против часовой стрелки), то второй октант можно получить зеркальным отражением относительно прямой у = х, что дает в совокупности первый квадрант. Первый квадрант отражается относительно прямой х = 0 для получения соответствующей части окружности во втором квадранте. Верхняя полуокружность отражается относительно прямой у = О для завершения построения.
Растровая развертка сплошных областей. Возможность представления сплошных областей в растровом графическом устройстве является его уникальной характеристикой. Генерация сплошных областей из простых описаний ребер или вершин называется растровой разверткой сплошных областей, заполнением многоугольников или заполнением контуров. Для этого можно использовать несколько методов, которые обычно делятся на две широкие категории: растровая развертка и затравочное заполнение.
В методах растровой развертки пытаются определить в порядке сканирования строк, лежит ли точка внутри многоугольника или контура. Эти алгоритмы обычно идут от "верха" многоугольника или контура к "низу".
В методах затравочного заполнения предполагается, что известна некоторая точка (затравка) внутри замкнутого контура. В алгоритмах ищут точки, соседние с затравочной и расположенные внутри контура. Если соседняя точка расположена не внутри, значит, обнаружена граница контура. Если же точка оказалась внутри контура, то она становится новой затравочной точкой и поиск продолжается рекурсивно.
Растровая развертка многоугольников. Можно разработать эффективный метод растровой развертки многоугольников, если воспользоваться тем фактом, что соседние пиксели, вероятно, имеют одинаковые характеристики (кроме пикселов граничных ребер). Это свойство называется пространственной когерентностью.
Алгоритм с упорядоченным списком ребер. Используя эти методы, можно разработать эффективные алгоритмы растровой развертки сплошных областей, называемые алгоритмами с упорядоченным списком ребер. Эффективность этих алгоритмов зависит от эффективности сортировки.
Алгоритм заполнения по ребрам. Алгоритм, использующий список ребер и флаг, является двухшаговым. Первый шаг состоит в обрисовке контура, в результате чего на каждой сканирующей строке образуются пары ограничивающих пикселов. Второй шаг состоит в заполнении пикселов, расположенных между ограничивающими.
Алгоритмы заполнения с затравкой. В рассмотренных алгоритмах заполнение происходит в порядке сканирования. Иной подход используется в алгоритмах заполнения с затравкой. В них предполагается, что известен хотя бы один пиксель из внутренней области многоугольника. Алгоритм пытается найти и закрасить все другие пиксели, принадлежащие внутренней области. Области могут быть либо внутренние, либо гранично-определенные. Если область относится к внутренне-определенным, то все пиксели, принадлежащие внутренней части, имеют один и тот же цвет или интенсивность, а все пиксели, внешние по отношению к области, имеют другой цвет. Если область относится к гранично-определенным, то все пиксели на границе области имеют выделенное значение или цвет. Алгоритмы, заполняющие внутренне-определенные области, называются внутренне-за-полняющими, а алгоритмы для гранично-определенных областей - гранично-заполняющими.
Векторная графика
Как в растровой графике основным элементом изображения является точка, так в векторной графике основным элементом изображения является линия, при этом не важно, прямая это линия или кривая.
В растровой графике тоже существуют линии, но там они рассматриваются как комбинации точек. Для каждой точки линии в растровой графике отводится одна или несколько ячеек памяти (чем больше цветов могут иметь точки, тем больше ячеек им выделяется). Соответственно, чем длиннее растровая линия, тем больше памяти она занимает. В векторной графике объем памяти, занимаемый линией, не зависит от размеров линии, поскольку линия представляется в виде формулы, а точнее говоря, в виде нескольких параметров. Чтобы ни делали с этой линией, меняются только ее параметры, хранящиеся в ячейках памяти. Количество же ячеек остается неизменным для любой линии.
Линия - это элементарный объект векторной графики. Все, что есть в векторной иллюстрации, состоит из линий. Простейшие объекты объединяются в более сложные, например, объект четырехугольник можно рассматривать как четыре связанные линии, а объект куб еще более сложен: его можно рассматривать либо как двенадцать связанных линий, либо как шесть связанных четырехугольников. Из-за такого подхода векторную графику часто называют объектно-ориентированной графикой.
Объекты векторной графики хранятся в памяти в виде набора параметров, но надо помнить о том, что на экран все изображения все равно выводятся в виде точек. Перед выводом на экран каждого объекта программа производит вычисления координат экранных точек в изобра жении объекта, поэтому векторную графику иногда называют вычисляемой графикой. Аналогичные вычисления производятся и при выводе объектов на принтер.
Как и все объекты, линии имеют свойства. К этим свойствам относятся: форма линии, ее толщина, цвет, характер линии (сплошная, пунктирная и т.п.). Замкнутые линии имеют свойство заполнения. Внутренняя область замкнутого контура может быть заполнена цветом, текстурой, картой. Простейшая линия, если она не замкнута, имеет две вершины, которые называются узлами. Узлы тоже имеют свойства, от которых зависит, как выглядит вершина линии и как две линии сопрягаются между собой.
Основные цветовые модели
Модель RGB построена на основе строения глаза. Она идеально удобна для светящихся поверхностей (мониторы, телевизоры, цветные лампы и т.п.). В основе ее лежат три цвета: Red - красный, Green - зеленый и Blue -синий. С помощью этих трех основных цветов можно получить почти весь видимый спектр. Например, желтый цвет - это сложение красного и зеленого. Поэтому RGB называют аддитивной системой смешения цветов.
Модель CMY применяется для отражающих поверхностей (типографских и принтерных красок, пленок и т.п.). Ее основные цвета: Cyan - голубой, Magenta -пурпурный и Yellow - желтый, являются дополнительными к основным цветам RGB. Дополнительный цвет - разность между белым и данным, например, желтый = = белый - синий. Поэтому CMY называют субтрактив-ной системой смешения цветов. Например, при пропускании света через пурпурный объект поглощается зеленая часть спектра, если далее пропустить через желтый объект, то поглотится синяя часть спектра и останется лишь красный цвет. Данный принцип используют светофильтры.
Наряду с системой CMY также часто применяют и ее расширение CMYK. Дополнительный канал К (от англ. ЫасК) - черный. Он применяется для получения более "чистых" оттенков черного. В цветных принтерах чаще всего используется четыре красителя. Данная система широко применяется в полиграфии.
В 1931 г. была принята модель С IE (Commission International de 1'Eclairage - - Международная комиссия по освещению), в качестве основы которой был выбран двумерный цветовой график и набор из трех функций реакции глаза, исключающий отрицательные области и удобный для обработки. Гипотетические цвета CIE - X, Y и Z. Треугольник XYZ задан так, что в него входит видимый спектр. Комиссия решила ориентировать треугольник XYZ таким образом, что равные количества гипотетических основных цветов XYZ давали в сумме белый. В 1953 г. была разработана модель YIQ:Канал Название Занимаемый диапазон
Y яркость 4 МГц
I синфазный 1,4 МГц
Q интегрированный 0,6 МГц
В канале Y яркость подобрана так, что она соответствует цветовой чувствительности глаза. Канал I соответствует цветам от голубого до оранжевого (теплым тонам). Канал Q - от зеленого до пурпурного. В качестве опорного белого был взят источник с температурой 6500 К.
Модель HSV. В цвете можно выделить его тон - преобладающий основной цвет (длину волны, преобладающей в излучении), насыщенность цвета - чем она больше, тем "чище" цвет (то есть ближе к тоновой волне), например, у белого цвета - насыщенность = 0, так как невозможно выделить его цветовой тон, яркость (у черного цвета = 0, у белого = 1). Таким образом, можно построить трехмерное цветовое пространство HSV - Hue, Saturation, Volume (Тон, Насыщенность и Яркость). Обычно его представляют в виде конуса. Начало координат - вершина конуса - черный цвет. Высота, направленная к основанию, - яркость. Точка пересечения высоты с основанием - белый цвет. На высоте находятся оттенки серого цвета - от черного (вершина конуса) к белому. На окружности, ограничивающей основание конуса, находятся чистые цветовые тона: от красного (0 рад), через зеленый (2л/3 рад), к синему (4тс/3 рад). Радиус конуса -насыщенность цвета. HSV часто представляют и в виде шестигранного конуса, у которого в основании лежит правильный шестиугольник с вершинами, соответствующими следующим цветам: красный, желтый, зеленый, голубой, синий, пурпурный.
Цветовая палитра
Цветовая палитра - это таблица данных с информацией о коде закодированного цвета. Эта таблица создается и хранится вместе с графическим файлом.
Самый удобный для компьютера и самый распространенный способ кодирования цвета - 24-разрядный, True Color. В этом режиме на кодирование каждой цветовой составляющей R (красной), G (зеленой) и В (синей) отводится по одному байту (8 битов). Яркость каждой составляющей выражается числом от 0 до 255, и любой цвет из 16,5 миллионов компьютер может воспроизвести по трем кодам. В этом случае цветовая палитра не нужна, поскольку в трех байтах и так достаточно информации о цвете конкретного пикселя.
Сложнее обстоит дело, когда изображение имеет только 256 цветов, кодируемых одним байтом. В этом случае каждый цветовой оттенок представлен одним числом, причем это число выражает не цвет пикселя, а индекс цвета (его номер). Сам же цвет разыскивается по этому номеру в сопроводительной цветовой палитре, приложенной к файлу. Такие цветовые палитры называют индексными палитрами. Разные изображения могут иметь разные цветовые палитры.
В тех случаях, когда цвет изображения закодирован двумя байтами (режим High Color), на экране возможно изображение 65 тысяч цветов. В таком изображении каждый двухбайтный код тоже выражает какой-то цвет из общего спектра. Но в данном случае нельзя приложить к файлу индексную палитру, в которой было бы записано, какой код какому цвету соответствует, поскольку в этой таблице было бы 65 тысяч записей, и ее размер составил бы сотни тысяч байтов. Нет смысла прикладывать к файлу таблицу, которая может быть по размеру больше самого файла. В этом случае используют понятие фиксированной палитры. Ее не надо прикладывать к файлу, поскольку в любом графическом файле, имеющем шестнадцатиразрядное кодирование цвета, один и тот же код всегда выражает один и тот же цвет.
Термин "безопасная палитра" используют в Web-графике. Скорость передачи данных в Интернете пока оставляет желать лучшего, для оформления Web-страниц не применяют графику, имеющую кодирование цвета выше 8-разрядного. При этом возникает проблема, связанная с тем, что создатель Web-страницы не имеет ни малейшего понятия о том, на какой модели компьютера и под управлением каких программ будет просматриваться его произведение. Он не уверен, не превратится ли его "зеленая елка" в красную или оранжевую на экранах пользователей. Поэтому все наиболее популярные программы для просмотра Web-страниц (браузеры) заранее настроены на некоторую одну фиксированную палитру. В этой палитре не 256 цветов, как можно было бы предположить, а лишь 216. Это связано с тем, что в Интернете работают люди с разными компьютерами, а не только с IBM PC, и не все компьютеры могут воспроизводить 256 цветов. Такая фиксированная палитра, жестко определяющая индексы для кодирования 216 цветов, называется безопасной палитрой.
Форматы файлов растровой графики
Файлы растровых изображений отличаются многообразием форматов (несколько десятков). У каждого формата есть свои положительные качества, определяющие целесообразность его использования при работе с теми или иными приложениями.
Для операционной системы Windows наиболее характерным является формат Windows Bitmap. Файлы этого формата имеют расширение .bmp. Данный формат отличается универсальностью, и де-факто является стандартным для приложений Windows. Если графическая программа предназначена для работы в системе Windows, она не может не иметь возможности экспортировать или импортировать файлы этого формата. Характерным недостатком формата Windows Bitmap является большой размер файлов из-за отсутствия сжатия изображения.
В последнее время появились разновидности формата . bmp, обладающие свойством сжатия информации, но эти форматы поддерживаются не всеми приложениями Windows.
Для Web-документов, циркулирующих в сети Интернет, важен размер файлов, поскольку от него зависит скорость доступа к информации. Поэтому при подготовке Web-страниц используют два вида графических форматов, обеспечивающих наиболее плотное сжатие.
Для хранения многоцветных нерегулярных изображений (фотографий) используют формат JPEG, файлы которого имеют расширение .jpg. Этот формат отличается тем, что обеспечивает хранение данных с огромной степенью сжатия, но за счет потери части информации. Если файл был записан в формате .jpg, то после распаковки полученный файл может не соответствовать исходному, хотя на таких иллюстрациях, как цветные фотографии, это малозаметно. Величиной потери информации можно управлять при сохранении файла.
Кроме формата JPEG, в Интернете используют формат GIF. Это самый "плотный" из графических форматов, не имеющих потери информации, файлы этого формата имеют расширение .gif. В этом формате хранятся и передаются малоцветные изображения, например рисованные иллюстрации. У формата GIF есть интересные особенности, позволяющие создавать необычные эффекты: прозрачность фона и анимацию изображения.
Особые требования к качеству изображений предъявляются в полиграфии. В этой области применяется специальный формат TIFF. Файлы этого формата имеют расширение .tif. Они обеспечивают неплохую степень сжатия и возможность сохранять в одном файле дополнительную информацию в невидимых вспомогательных слоях - каналах. Так, в стандартной программе Imaging, входящей в состав Windows 98, наиболее интересные возможности по наложению аннотаций и примечаний на рисунок реализуются только при работе с изображениями, имеющими формат TIFF. В других перечисленных форматах нельзя создать слой для хранения информации, не относящейся непосредственно к изображению.
Программы для работы с растровой графикой
Средства создания изображений
Ряд графических редакторов, например, Painter и Fauve Matisse, ориентирован непосредственно на процесс рисования. В них акцент сделан на использование удобных инструментов рисования и на создание новых художественных инструментов и материалов. К простейшим программам этого класса относится также графический редактор Paint.
Средства обработки изображений
Другой класс растровых графических редакторов предназначен не для создания изображений "с нуля", а для обработки готовых рисунков с целью улучшения их качества и реализации творческих идей. К таким программам, в частности, относятся Adobe Photoshop, Photostyler, Picture Publisher и др.
Исходная информация для обработки на компьютере может быть получена разными путями: сканированием цветной иллюстрации, загрузкой изображения, созданного в другом редакторе, или вводом изображения от цифровой фото- или видеокамеры. При создании художественных композиций отдельные фрагменты часто заимствуют из библиотек изображений-клипартов, распространяемых на компакт-дисках. Основа будущего рисунка или его отдельные элементы могут быть созданы и в векторном графическом редакторе, после чего их экспортируют в растровом формате.
Для работы с изображениями, записанными на CD или принятыми от цифровой фотокамеры, в операционной системе Windows 98 есть удобное приложение Picture It! Оно предназначено для обработки изображений (регулировка яркости и контрастности, художественная ретушь, устранение эффекта "красного глаза") и их каталогизации.
Средства каталогизации изображений
Особый класс программ для работы с растровыми изображениями представляют программы-каталогизаторы. Они позволяют просматривать графические файлы множества различных форматов, создавать на жестком диске удобные альбомы, перемещать и переименовывать файлы, документировать и комментировать иллюстрации. Удобной программой этого класса считается программа ACDSee 32. В Windows 95 для этих целей служит стандартная программа Просмотр рисунков. В Windows 98 в качестве стандартной введена ее более мощная версия -Imaging.
Программы для работы с векторной графикой
Если основным требованием к изображению является высокая точность формы, то применяют специальные графические редакторы, предназначенные для работы с векторной графикой. Такая задача возникает при разработке логотипов компаний, при художественном оформлении текста (например, журнальных заголовков или рекламных объявлений), а также во всех случаях, когда иллюстрация является чертежом, схемой или диаграммой, а не рисунком.
Adobe Illustrator 7.0 является общепризнанным мировым лидером среди средств векторной графики. Ее особое достоинство состоит в том, что вместе с программами Adobe Photoshop и PageMaker она образует законченное трио приложений, достаточных для выполнения компьютерной верстки полиграфических изданий и разработки сложных документов. Эти приложения выполнены в едином стиле, используют похожие интерфейсы и инструменты, позволяют применять одинаковые приемы и навыки и безошибочно экспортируют и импортируют созданные объекты между собой. Дополнительным преимуществом Adobe Illustrator 7.0 является тот факт, что этот векторный редактор имеет версию на русском языке.
Macromedia Freehand 8.0 - очень удобный векторный редактор. Программа отличается простотой системы управления и высоким быстродействием. С ее помощью можно работать на таких компьютерах, на которых использование других средств векторной графики превращается в мучительный процесс. Несмотря на простоту системы управления, инструментальные средства Macromedia Freehand достаточны для разработки весьма сложных документов и лишь на высоком уровне сложности уступают средствам Adobe Illustrator и CorelDraw. Программу Macromedia Freehand удобно использовать при работе с любыми системами компьютерной верстки, но специально она адаптирована для системы QuarkXPress.
CorelDraw (версии от 5.0 до 8.0). Редакторы векторной графики Adobe Illustrator и Macromedia Freehand довольно долго (до 1995 г.) оставались единственными средствами для работы на компьютерах Macintosh. Их развитие на платформе IBM PC отставало от необходимых требований, поэтому на этой платформе исторически сложилось преимущество редактора CorelDraw, особенно в России, где в отличие от прочих стран развитие платформы IBM PC значительно опережает платформу Macintosh. В настоящее время положение выравнивается. И Adobe Illustrator, и Macromedia Freehand имеют мощные и надежные версии для IBM PC, и популярность CorelDraw постепенно снижается.
К преимуществам этого редактора относят развитую систему управления и богатство средств настройки инструментов. Наиболее сложные композиции, близкие к художественным произведениям, получают средствами именно этого редактора. В CorelDraw система управления сложнее, чем в других векторных редакторах, и интерфейс не столь интуитивен. Изучение CorelDraw представляет более сложную задачу, чем изучение Adobe Illustrator или Macromedia Freehand.