- Методы сжатия графических изображений
- Алгоритмы сжатия без потерь
- Кодирование длин серий (Run Length Encoding )
- Алгоритм Хаффмана
- Алгоритм LZW
- Алгоритмы сжатия с потерями
- JPEG (Joint Photographic Experts Group)
- Способы сжатия графической информации
- Векторные форматы
- Векторные форматы графических файлов
- Растровые форматы
- Методы сжатия графических данных
- Преобразование файлов из одного формата в другой
- Преобразование файлов из растрового формата в векторный
- Преобразование файлов одного векторного формата в другой
Методы сжатия графических изображений
Для уменьшения объема дискового пространства файлы подвергаются компрессии (сжатию). Существует два основных принципа сжатия: сжатие без потерь, когда информация полностью восстанавливается, и сжатие с потерями, когда информация до и после сжатия отличается в определенной и регулируемой степени.
Алгоритмы сжатия без потерь
В качестве примеров таких алгоритмов сжатия без потерь можно рассмотреть следующие:
Ø кодирование длин серий;
Ø метод Хаффмана;
Кодирование длин серий (Run Length Encoding )
Как известно, все документы (графика, тексты, программы и т. п.) хранятся в компьютере в виде файлов — организованных записей. Изображения хранятся в файлах специальных графических форматов, которых сейчас насчитывается более десятка. Основой для разложения изображения на множество элементов является пиксель. Основа файла — это описание цветов всех пикселей. Описание цвета пикселя (три / четыре числа) является кодом цвета в соответствии с той или иной цветовой моделью. Указание на цветовую модель также включается в файл. Кроме того, записывается размер изображения в пикселях.
Итак, условная структура файла (аналог формата BMP), будет содержать: сведения о цветовой модели; габаритах изображения; и, например, об авторе картинки, включенные в специальный раздел файла, называемый заголовком . После заголовка в файле записываются друг за другом коды цветов (или параметров цветовой модели) отдельных пикселей, слева направо и сверху вниз.
Пиксельное изображение при сохранении фактически вытягивается в цепочку и логично предположить, что встречаются цепочки (последовательности) одинаковых байтов. Самым простым способом, который позволяет уменьшить объем файла, является поиск повторяющихся кодов (символов, цвета и т. п.) — серий одинаковых значений. Каждая такая серия фиксируется двумя числами: первое указывает количество одинаковых значений, а второе — само значение.
Заменим для простоты значения цвета буквами. Если в документе, скажем, имеется такая последовательность «АААААВВВВВВВСССССС», ее можно сжать таким образом: 5А7В6С. В результате вместо 18 символов в документе достаточно хранить всего 6.
Алгоритм рассчитан на деловую или декоративную графику — изображения с большими областями локального (повторяющегося) цвета.
Достоинством такого алгоритма является простота (что очень важно, т. к. позволяет выполнять процедуры компрессии и декомпрессии достаточно быстро), а недостатками — необходимость различать собственно данные и числа повторений, а также возможное увеличение объема файла, если в документе мало повторений (например, серия АВСАВС не уменьшит, а увеличит объем документа, поскольку будет иметь следующий вид: 1А1В1С1А1В1С, т. е. вместо 6 символов получится вдвое больше).
Если система выводит ошибку, возможно программа, считывающая файл ожидает появление данных в ином порядке, чем программа, сохраняющая этот файл на диске. Требуется преобразование в иной формат
Метод RLE включается в некоторые графические форматы, например:
Ø BMP (для 16 и 256 по желанию);
Ø TGA (по желанию);
Алгоритм Хаффмана
Алгоритм Хаффмана основан на определенном анализе документа и вычислении частоты встречаемости цветовых значений (или значений других видов информации), а затем этим значениям в соответствии с рангом присваиваются коды сначала с минимальным количеством битов, а затем по мере снижения частоты (уменьшения ранга) используется все большее количество двоичных разрядов. Такой способ кодирования иногда называют алфавитным кодированием.
Заменим также для простоты значения цвета буквами. Например, в следующей последовательности букв ААСАААВАВАВВАВСАСВСАСААССС заметно, что чаще всего встречается символ А (12 раз), затем символ С (9 раз) и, наконец, символ В (5 раз). Следовательно, символ А можно заменять кодом 0, символ С — кодом 1, а символ В — кодом 00. И так далее, если элементов для кодирования больше. В результате, если считать, что каждый символ в нашем примере кодируется 1 битом, то для передачи строки потребуется 208 битов, а в сжатом виде объем информации составит только 31 бит.
Алгоритм LZW
Алгоритм, названный в честь своих создателей Лемпеля, Зива и Велча (Lempel, Ziv и Welch), не требует вычисления вероятностей встречаемости символов или кодов. Основная идея состоит в замене совокупности байтов в исходном файле ссылкой на предыдущее появление той же совокупности.
Процесс сжатия выглядит следующим образом. Последовательно считываются символы входного потока и происходит проверка, существует ли в созданной таблице строк такая строка. Если такая строка существует, считывается следующий символ, а если строка не существует, в поток заносится код для предыдущей найденной строки, строка заносится в таблицу, а поиск начинается снова.
Например, если сжимают байтовые данные (текст), то строк в таблице окажется 256 (от «0» до «255»). Для кода очистки и кода конца информации используются коды 256 и 257. Если используется 10-битный код, то под коды для строк остаются значения в диапазоне от 258 до 1023. Новые строки формируют таблицу последовательно, т. е. можно считать индекс строки ее кодом.
Пусть сжимается последовательность символов АВВСВВВ. Сначала в сжатый документ сохраняется код удаления [256], затем считывается символ «А» и проверяется, существует ли в таблице строка «А». Поскольку при инициализации в таблицу сохраняются все строки длиной в один символ, то строка «А», конечно, существует в таблице.
Далее считывается следующий символ «В» и проверяется, существует ли в таблице строка «АВ». Такая строка в таблице пока отсутствует, поэтому с первым свободным кодом [258] в таблицу вносится строка «АВ», а в документе сохраняется код [А]. Последовательность «АВ» в таблице отсутствует, поэтому в таблицу добавляется код [258] для сочетания «АВ», а в документе сохраняется код [А].
Далее рассматривается последовательность «ВВ», которая отсутствует в таблице, в таблицу заносится код [259] для символов «ВВ», а в документе сохраняется код [В].
Считывается символ «С» и проверяется наличие символов «ВС» в таблице, поскольку такая последовательность отсутствует, то в таблицу заносится кед [260] для последовательности «ВС», а в документ — код [В].
Снова добавляется из исходного файла символ «В» и теперь уже проверяется сочетание «СВ», которое тоже отсутствует. В таблицу записывается код [261] для «СВ», а в документ — код [С].
Затем считывается символ «В» и строка «ВВ», наконец, имеется в таблице, поэтому считывается следующий символ и рассматривается последовательность «ВВВ», которая, конечно, в таблице отсутствует. В таблицу заносится код [262] для «ВВВ», а в документ (внимание!) — код [259].
В результате в документе окажется следующая последовательность кодов [256][А][В][В][С][259], что короче исходной последовательности. К сожалению, последовательность слишком короткая, а алгоритм достатчно сложен, чтобы выгода оказалась реальной. При значительном объеме коэффициент сжатия может достигать несколько сот единиц.
Особенностью рассматриваемого алгоритма LZW является то, что для выполнения обратного процесса («распаковки») нет необходимости сохранять таблицу в документе (алгоритм позволяет восстановить таблицу строк только из сохраненных в документе кодов).
Этот метод гораздо совершеннее RLE для областей с переходами цветов, однако кодировка в него требует больше системных ресурсов.
Метод LZW включается в некоторые графические форматы, например: TIFF ; GIF .
Алгоритмы сжатия с потерями
JPEG (Joint Photographic Experts Group)
Исследователями визуального восприятия человека отмечено, что далеко не вся информация требуется для того, чтобы адекватно воспринимать цветное изображение. Для реализации этого закона были разработаны алгоритмы с потерей информации, которые обеспечивают выбор уровня компрессии с уровнем качества изображения (рис. 1). Тем самым достигается компромисс между размером и качеством изображений.
Наиболее известным методом компрессии с потерями является JPEG-компрессия. Метод компрессии основан на особенности человеческого восприятия: глаз достаточно четко различает яркость объекта и цветовые контрасты, а плавные изменения в светах и тенях значительно меньше. При записи такой изобразительной информации часть цветовых данных может быть опущена, как предполагается, без заметного ущерба для восприятия.
Рис. 1. Компромисс между качеством и уровнем компрессии
Для этого обработка изображения происходит в несколько этапов. Сначала изображение конвертируется в особое цветовое пространство, напоминающее цветовую модель CIE Lab, в котором один канал сохраняет яркостные характеристики, а в остальных двух цветовых каналах уменьшается разрешение (по методу мозаики).
Замечание: RGB-изображение конвертируется в пространство YUV (иногда называемое также YcrCb), основанное на характеристиках яркости (составляющая Y) и цветности (составляющие U и V).
Затем изображение разбивается на фрагменты квадратной формы со стороной в 8 пикселей. Каждый фрагмент подвергается достаточно сложным математическим преобразованиям. Записывается два типа информации — усредненная информация о блоке и информация о его деталях, далее, в зависимости от выбранной степени сжатия, удаляется то или иное количество дополнительной информации. Чем меньше будет размер файла, тем хуже будет его качество.
Одновременно каждый блок разлагается на составляющие цвета и производится подсчет частоты встречаемости каждого цвета. Информация о частоте позволяет исключить небольшую часть яркостной характеристики и довольно значительную цветовой. Уровень исключения информации как раз и определяется установкой требуемого качества.
Затем информация о яркости и цвете кодируется таким образом, что остаются только различия между соседними блоками. Результатом всего процесса обработки являются последовательности простых чисел, которые в свою очередь легко сжимать каким-либо алгоритмом сжатия без потерь из уже упомянутых, например алгоритмом Хаффмана.
Алгоритмы сжатия с потерями, в частности алгоритм JPEG, не позволяют полностью восстановить изображение до его исходного состояния, а, следовательно, не рекомендуется сжимать изображения несколько раз.
Источник
Способы сжатия графической информации
В этом разделе:
- что такое формат графического файла;
- хранение информации в файлах векторных форматов;
- особенности стандартных векторных форматов;
- представление информации в файлах растровых форматов;
- особенности стандартных растровых форматов;
- сохранение изображений в собственных и «чужих» форматах графических программ;
- преобразование форматов файлов.
Проблема сохранения изображений для последующей их обработки чрезвычайно важна. С ней сталкиваются пользователи любых графических систем. Изображение может быть обработано несколькими графическими программами прежде, чем примет свой окончательный вид. Например, исходная фотография сначала сканируется, затем улучшается её чёткость и производится коррекция цветов в программе Adobe PhotoShop . После этого изображение может быть экспортировано в программу рисования, такую как CorelDRAW или Adobe Illustrator, для добавления рисованных картинок. Если изображение создаётся для статьи в журнале или книги, то оно должно быть импортировано в издательскую систему QuarkXPress или Adobe PageMaker. Если же изображение должно появиться в мультимедиа-презентации, то оно, вероятнее всего, будет использовано в Microsoft PowerPoint, Macromedia Director или размещено на Web-странице.
Формат графического файла — способ представления и расположения графических данных на внешнем носителе.
В условиях отсутствия стандартов каждый разработчик изобретал новый формат для собственных приложений. Поэтому возникали большие проблемы обмена данными между различными программами (текстовыми процессорами, издательскими системами, пакетами иллюстративной графики, программами САПР и др.). Но с начала 80-х гг. официальные группы по стандартам начали создавать общие форматы для различных приложений. Единого формата, пригодного для всех приложений, нет и быть не может, но всё же некоторые форматы стали стандартными для целого ряда предметных областей.
Пользователю графической программы не требуется знать, как именно в том или ином формате хранится информация о графических данных. Однако умение разбираться в особенностях форматов имеет большое значение для эффективного хранения изображений и организации обмена данными между различными приложениями.
Важно различать векторные и растровые форматы.
Векторные форматы
Файлы векторного формата содержат описания рисунков в виде набора команд для построения простейших графических объектов (линий, окружностей, прямоугольников, дуг и т. д.). Кроме того, в этих файлах хранится некоторая дополнительная информация. Различные векторные форматы отличаются набором команд и способом их кодирования.
В качестве примера рассмотрим описание простого рисунка в виде последовательности векторных команд. Пусть в вашем распоряжении имеются следующие векторные команды:
Установить X, Y — установить в качестве текущей позицию ( X, Y ).
Линия к X I, Y 1 — нарисовать линию от текущей позиции до позиции ( X I, Y 1), при этом позиция ( X I, Y 1) становится текущей.
Линия X I, Y l, X 2, Y 2 — нарисовать линию с координатами её начала ( X I, Y 1) и координатами конца (Х 2 , Y 2), при этом текущая позиция не устанавливается.
Окружность X, Y, — нарисовать окружность, где ( X, Y ) — координаты центра, — радиус в пикселях.
Эллипс X 1, Y 1, X 2, Y 2 — нарисовать эллипс, ограниченный прямоугольником, где (X I, Y 1) — координаты левого верхнего угла этого прямоугольника, a (X 2, Y 2) — правого нижнего.
Прямоугольник X 1, Y 1, X 2, Y 2 — нарисовать прямоугольник, где ( X I , Y 1) — координаты левого верхнего угла этого прямоугольника, а (Х 2, Y 2) — правого нижнего.
Цвет рисования — установить текущий цвет рисования .
Цвет закраски — установить текущий цвет закраски .
Закрасить X, Y, — закрасить произвольную замкнутую фигуру, где (X, Y) — координаты любой точки внутри замкнутой фигуры, — цвет граничной линии.
Требуется описать с помощью векторных команд изображение кораблика.
Координаты рисунка задаются в прямоугольной декартовой системе координат, начало которой находится в верхнем левом углу.
Цвет рисования Голубой
Установить 270 ,1 00
Линия к 440, 100
Линия к 400, 140
Линия к 310, 140
Линия к 270, 100
Цвет закраски Голубой
Закрасить 320, 130, Голубой
Цвет рисования Белый
Цвет закраски Белый
Окружность 310, 120, 5
Закрасить 310,120, Белый
Окружность 350, 120, 5
Закрасить 350,120, Белый
Окружность 400,120, 5
Закрасить 400,120, Белый
Цвет рисования Синий
Цвет закраски Красный
Установить 300,100
Линия к 340, 20
Линия к 340,100
Линия к 300,100
Закрасить 320,90, Синий
Цвет рисования Коричневый
Установить 340, 20
Линия к 340,100
Линия к 400, 100
Линия к 340,20
Цвет закраски Белый
Закрасить 390, 90, Коричневый
Рис. 1. Координаты рисунка кораблика
Векторные форматы графических файлов
Особенности некоторых векторных форматов приведены в Таблице 1.
WMF
Windows MetaFile
Encapsulated PostScript
Drawing Interchange Format
Computer Graphics Metafile
Растровые форматы
В файлах растровых форматов запоминаются:
• размер изображения — количество видеопикселей в рисунке по горизонтали и вертикали
• битовая глубина — число битов, используемых для хранения цвета одного видеопикселя
• данные, описывающие рисунок (цвет каждого видеопикселя рисунка), а также некоторая дополнительная информация.
В файлах растровой графики разных форматов эти характеристики хранятся различными способами.
Поскольку размер изображения хранится в виде отдельной записи, цвета всех видеопикселей рисунка запоминаются как один большой блок данных. Так как растровое представление изображения кораблика достаточно громоздко, рассмотрим как сохраняется в растровом файле простое чёрно-белое изображение (рис. 2).
Рис. 2. В растровом файле сохраняется информация о цвете каждого видеопикселя
На рис. 3 показан результат восстановления изображения по информации, сохранённой в растровом файле, представленном на рис. 2. В изображении, восстановленном по файлу, видеопиксели располагаются согласно размеру изображения; а именно, сначала — первая десятка видеопикселей, в следующей строке — вторая десятка и т. д., в десятой строке — последние десять видеопикселей.
Рис. 3. Растровый рисунок, восстановленный по файлу растровой графики
Легко описать векторное представление рис. 3:
Линия к 3, 0
Линия к 5, 0
Линия к 8, 3
Линия к 8, 5
Линия к 5, 8
Линия к 3, 8
Линия к 0, 5
Линия к 0, 3.
Изображения фотографического качества, полученные с помощью сканеров с высокой разрешающей способностью, часто занимают несколько мегабайт. Например, если размер изображения 1766 х 1528, а количество используемых цветов — 16777216, то объём растрового файла составляет около 8 Мб (информация о цвете видеопикселей в файле занимает 1766 х 1528 х 24 / 8 / 1024 / 1024 Мб).
Решением проблемы хранения растровых изображений является сжатие, т. е. уменьшение размера файла за счёт изменения способа организации данных. Никому пока не удалось даже приблизиться к созданию идеального алгоритма сжатия. Каждый алгоритм хорошо сжимает только данные вполне определённой структуры.
Методы сжатия делятся на две категории:
• сжатие файла с помощью программ — архиваторов;
• сжатие, алгоритм которого включён в формат файла.
В первом случае специальная программа считывает исходный файл, применяет к нему некоторый сжимающий алгоритм (архивирует) и создаёт новый файл. Выигрыш в размере нового файла может быть значительным. Однако этот файл не может быть использован ни одной программой до тех пор, пока он не будет преобразован в исходное состояние (разархивирован). Поэтому такое сжатие применимо только для длительного хранения и пересылки данных, но для повседневной работы оно неудобно. В системах DOS и WINDOWS наиболее популярными программами сжатия файлов являются ZIP, ARJ, RAR и другие.
Если же алгоритм сжатия включён в формат файла, то соответствующие программы чтения правильно интерпретируют сжатые данные. Таким образом, такой вид сжатия очень удобен для постоянной работы с графическими файлами большого размера. Например, пусть в CorelDRAW получен рисунок, который нужно разместить в документе, созданном в программе Adobe PhotoShop. TIFF — один из растровых форматов, с которыми может работать Adobe PhotoShop. При формировании файла формата TIFF выполняется сжатие графических данных. Именно это обстоятельство учитывается соответствующей программой чтения. Поэтому для достижения поставленной цели можно поступить следующим образом:
• сохранить рисунок, созданный в CorelDRAW, в файле формата TIFF;
• импортировать этот файл в программу Adobe PhotoShop.
Методы сжатия графических данных
При сжатии методом RLE (Run — Length Encoding) последовательность повторяющихся величин (в нашем случае — набор бит для представления видеопикселя ) заменяется парой — повторяющейся величиной и числом её повторений.
Метод сжатия RLE включается в некоторые графические форматы, например, в формат PCX .
Программа сжатия файла может сначала записывать количество видеопикселей, а затем их цвет или наоборот. Поэтому возможна такая ситуация, когда программа, считывающая файл, ожидает появления данных в ином порядке, чем программа, сохраняющая этот файл на диске. Если при попытке открыть файл, сжатый методом RLE, появляется сообщение об ошибке или полностью искажённое изображение, нужно считать этот файл с помощью другой программы или преобразовать его в иной формат.
Сжатие методом RLE наиболее эффективно для изображений, которые содержат большие области однотонной закраски, и наименее эффективно — для отсканированных фотографий, так как в них нет длинных последовательностей одинаковых видеопикселей .
Метод сжатия LZW (назван так по первым буквам его разработчиков Lempel, Ziv, Welch ) основан на поиске повторяющихся узоров в изображении. Сильно насыщенные узорами рисунки могут сжиматься до 0,1 их первоначального размера. Метод сжатия LZW применяется для файлов форматов TIFF и GIF; при этом данные формата GIF сжимаются всегда, а в случае формата TIFF право выбора возможности сжатия предоставляется пользователю. Существуют варианты формата TIFF, которые используют другие методы сжатия. Из-за различных схем сжатия некоторые версии формата TIFF могут оказаться несовместимыми друг с другом. Это означает, что возможна ситуация, когда файл в формате TIFF не может быть прочитан в некоторой графической программе, хотя она должна «понимать» этот формат. Другими словами, не все форматы TIFF одинаковы. Но, несмотря на эту проблему, TIFF является одним из самых популярных растровых форматов в настоящее время.
Рис. 4. Сжатие методом RLE
Метод сжатия JPEG обеспечивает высокий коэффициент сжатия для рисунков фотографического качества. Формат файла JPEG , использующий этот метод сжатия, разработан объединенной группой экспертов по фотографии (Joint Photographic Experts Group ). Сжатие по методу JPEG сильно уменьшает размер файла с растровым рисунком (возможен коэффициент сжатия 100 : 1). Высокий коэффициент сжатия достигается за счет сжатия с потерями, при котором в результирующем файле теряется часть исходной информации. Метод JPEG использует тот факт, что человеческий глаз очень чувствителен к изменению яркости, но изменения цвета он замечает хуже. Поэтому при сжатии этим методом запоминается больше информации о разнице между яркостями видеопикселей и меньше — о разнице между их цветами. Так как вероятность заметить минимальные различия в цвете соседних пикселей мала, изображение после восстановления выглядит почти неизменным. Пользователю предоставляется возможность контролировать уровень потерь, указывая степень сжатия. Благодаря этому, можно выбрать наиболее подходящий режим обработки каждого изображения: возможность задания коэффициента сжатия позволяет сделать выбор между качеством изображения и экономией памяти. Если сохраняемое изображение — фотография, предназначенная для высокохудожественного издания , то ни о каких потерях не может быть и речи, так как рисунок должен быть воспроизведён как можно точнее. Если же изображение — фотография, которая будет размещена на поздравительной открытке, то потеря части исходной информации не имеет большого значения. Эксперимент поможет определить наиболее допустимый уровень потерь для каждого изображения.
Информация о методах сжатия, используемых в растровых форматах файлов, приведена в таблице 2.
Растровые форматы графических файлов
Windows Device
Independent Bitmap
Z — Soft PaintBrush
Graphic Interchange Format
Tagged Image File Format
TrueVision Targa
Digital Research GEM Bitmap
Joint Photographic Experts Group
О сохранении изображений в собственных и «чужих» форматах
Как правило, графические программы используют свои собственные форматы для сохранения изображений во внешней памяти. Собственный файловый формат — частный и наиболее эффективный формат для хранения файлов отдельного графического приложения. Например, «родной» формат CorelDRAW — CDR , Adobe PhotoShop — PSD, Fractal Design Painter — RIFF, Paint (стандартная программа WINDOWS ) — BMP. При сохранении изображения в файле всегда нужно указывать тип формата. На рис. 5 показано диалоговое окно (Ехроrt \Экспорт), используемое в программе CorelDRAW.
Кроме того, для каждого «чужого» графического формата открываются дополнительные диалоговые окна, с помощью которых пользователь устанавливает параметры формата (количество используемых цветов, необходимость сжатия — для BMP и TIFF, коэффициент сжатия — для JPEG и др.).
Рис. 5. Диалоговое окно для сохранения в CorelDRAW изображения в формате JPEG
Преобразование файлов из одного формата в другой
Необходимость преобразования графических файлов из одного формата в другой может возникнуть по разным причинам:
• программа, с которой работает пользователь, не воспринимает формат его файла;
• данные, которые надо передать другому пользователю, должны быть представлены в специальном формате.
Преобразование файлов из растрового формата в векторный
Существуют два способа преобразования файлов из растрового формата в векторный :
1) преобразование растрового файла в растровый объект векторного изображения;
2) трассировка растрового изображения для создания векторного объекта.
Первый способ используется в программе CorelDRAW, которая, как правило, успешно импортирует файлы различных растровых форматов. К примеру, если растровая картинка содержит 16 миллионов цветов, CorelDRAW покажет изображение, приближенное по качеству к телевизионному. Однако, импортируемый растровый объект может становиться довольно большим даже в том случае, если исходный файл невелик. В файлах растровых форматов информация хранится достаточно эффективно, так как часто используются методы сжатия. Векторные форматы такой способностью не обладают. Поэтому растровый объект, хранящийся в векторном файле, может значительно превосходить по размерам исходный растровый файл.
Особенность второго способа преобразования растрового изображения в векторное заключается в следующем. Программа трассировки растровых изображений (например, CorelTRACE) ищет группы пикселей с одинаковым цветом, а затем создает соответствующие им векторные объекты. После трассировки векторизованные рисунки можно редактировать как угодно. На рис. 6 показано растровое изображение, которое хорошо преобразуется в векторное. Дело в том, что растровые рисунки, имеющие четко выраженные границы между группами пикселей одинакового цвета, хорошо переводятся в векторные. В то же время результат трассировки растрового изображения фотографического качества со сложными цветовыми переходами выглядит хуже оригинала.
Рис. 6. Растровый рисунок с четкими границами, преобразованный в векторный формат
Преобразование файлов одного векторного формата в другой
Векторные форматы содержат описания линий, дуг, закрашенных полей, текста и т. д. В различных векторных форматах эти объекты описываются по-разному. Когда программа пытается преобразовать один векторный формат в другой, она действует подобно обычному переводчику, а именно:
• считывает описания объектов на одном векторном языке,
• пытается перевести их на язык нового формата.
Рис. 7. Растровое изображение фотографического качества, преобразованное в векторный формат
Если программа-переводчик считает описание объекта, для которого в новом формате нет точного соответствия, этот объект может быть либо описан похожими командами нового языка, либо не описан вообще. Таким образом, некоторые части рисунка могут исказиться или исчезнуть. Всё зависит от сложности исходного изображения. На рис. 8 представлен один из возможных результатов преобразования файла из одного векторного формата в другие. Исходный рисунок создан в программе CorelDRAW ! и состоит из следующих элементов: импортированная растровая картинка в формате JPEG , рамка вокруг растровой картинки, текст, прямоугольник с конической заливкой.
При преобразовании рисунка 8а в формат CGM сохранились все исходные элементы (рис. 8 6 ). Формат DXF проигнорировал растровую картинку, исказил контур вокруг нее, коническую заливку, а также увеличил размер шрифта. Дело в том, что этот формат предназначен для конструкторских разработок и, следовательно, в нём отсутствуют команды для описания различных художественных эффектов.
Рис. 8. Результаты преобразования одного векторного формата в другой
Преобразование файлов из векторного формата в растровый
Преобразование изображений из векторного формата в растровый (этот процесс часто называют растрированием векторного изображения) встречается очень часто. Прежде, чем разместить рисованную (векторную) картинку на фотографии, её необходимо экспортировать в растровый формат. Например, изображение окна на рис. 9 было отсканировано и сохранено в файле формата JPEG. Рисунок утёнка создан в векторной программе CorelDRAW и затем экспортирован в файл формата TIFF. Монтаж двух растровых изображений выполнен в программе Adobe PhotoShop.
Рис. 9. Рисованная картинка, вставленная в фотографию
Каждый раз, когда векторный рисунок направляется на устройство вывода (в частности, монитор или принтер), он подвергается растрированию — преобразованию в набор видеопикселей или точек.
При экспорте векторных файлов в растровый формат может быть потеряна информация, связанная с цветом исходного изображения. Это объясняется тем, что в ряде растровых форматов количество цветов ограничено (например, формат GIF использует не более 256 цветов).
Преобразование файлов одного растрового формата в другой
Этот вид преобразования обычно самый простой и заключается в чтении информации из исходного файла и записи ее в новом файле, где данные о размере изображения, битовой глубине и цвете каждого видеопикселя хранятся другим способом. Если старый формат использует больше цветов, чем новый, то возможна потеря информации. Преобразование файла с 24-битовым цветом (16777216 цветов) в файл с 8-битовым цветом (256 цветов) требует изменения цвета почти каждого пикселя. В простейшем случае это делается так: для каждого пикселя исходного файла ищется наиболее близкий к нему цвет из нового ограниченного набора цветов. При таком способе возможны нежелательные эффекты, когда часть рисунка, содержащая большое количество элементов, оказывается закрашенной одним цветом или когда плавные переходы цвета становятся резкими. На рис. 10 показано, к каким результатам может привести уменьшение количества цветов изображения.
Рис. 10. При уменьшении количества цветов появляются дефекты в изображении
Для преобразования файлов из одного формата в другой используются специальные программы — преобразователи (конверторы) форматов. Однако большинство графических программ (CorelDRAW, Adobe Illustrator, Adobe PhotoShop и др.) могут читать и создавать файлы различных форматов, т. е. являются преобразователями форматов.
Контрольные вопросы
1. Что означает термин «формат графического файла»?
2. Почему необходимо иметь общие форматы для различных приложений?
3. Как хранится изображение в файле векторного формата?
4. Перечислите несколько векторных форматов.
5. Какая информация запоминается в растровом файле?
6. Как можно уменьшить размер растрового файла?
7. Какие методы сжатия графических данных вам известны?
8. Какие форматы используются для хранения фотографий?
9. Когда возникает необходимость в преобразовании форматов файлов?
10. Какие способы преобразования растрового формата в векторный вам известны?
11. Почему при преобразовании одного векторного формата в другой некоторые части изображения могут исказиться или вообще исчезнуть?
12 . Каковы особенности преобразования одного растрового формата в другой растровый формат?
Источник