Форматы текстовых файлов
Программное обеспечение обработки текстовых и графических данных.
Одной из наиболее распространенных функций современного персонального компьютера является подготовка разнообразных текстовых документов.
Различают две основные группы программ подготовки текстовых документов: текстовые редакторы и текстовые процессоры.
Текстовыми редакторами, в основном, называют программы, создающие текстовые файлы без элементов форматирования (т. е. не позволяющие выделять части текста различными шрифтами и гарнитурами). Редакторы такого рода незаменимы при создании текстов компьютерных программ.
Текстовые процессоры умеют форматировать текст, вставлять в документ графику и другие объекты, не относящиеся к классическому понятию "текст". Следует отметить условность такого разделения - разнообразие программ для обработки текста позволяет найти редактор с любым набором функций.
Некоторые текстовые процессоры являются так называемыми WYSIWYG-редакторами. Название получено по первым буквам фразы What You See Is What You Get - то, что ты видишь, есть то, что ты получишь. Когда говорят, что это WYSIWYG-редактор, то гарантируют полное соответствие внешнего вида документа на экране компьютера и его печатной копии. К редакторам такого типа относятся Word и StarWriter.
Некоторые современные редакторы поддерживают концепцию "почти" WYSIWYG. Вид документа на экране при этом немного отличается от того, как будет выглядеть напечатанный документ, но делается это специально с целью более эффективного использования рабочего окна документа. Примерами "почти" WYSIWYG-редакторов являются Netscape Composer и KLyX.
Форматы текстовых файлов
Текстовые файлы - наиболее распространенный тип данных в компьютерном мире. Существуют несколько проблем, связанных с текстовыми файлами. Первая - чрезвычайно большое количество символов, требующихся для поддержки различных языков. Американские программисты для работы со 128 символами используют набор символов US ASCII (американский стандартный код для обмена информацией). Для поддержки других языков зачастую не хватает и 256 символов, поэтому сейчас осуществляется постепенный переход к кодировке Unicode, в которой для хранения одного символа отводится уже два байта (т. е. имеется возможность закодировать 65 536 различных символов).
Вторая проблема заключается в том, что люди хотят, чтобы распечатываемые документы содержали графики, диаграммы, примечания, заголовки и чтобы при этом использовались различные шрифты. Документы, распространяемые в Интернет (онлайновые документы), могут содержать мультипликацию, ссылки на различные сетевые ресурсы и звуковое сопровождение.
Многие текстовые файлы передаются в виде простого текста (plain text). Простой текст сложно сделать привлекательным и легко читаемым, так как в нем нет шрифтов различных начертаний, графики, заголовков, подзаголовков и т. д. Эти дополнительные особенности носят название разметки текста (markup).
Говоря о разметке текста, выделяют понятия физической и логической разметки. При использовании физической разметки текста указывается точный вид каждого фрагмента. Например, "центрированный текст, 14-м кеглем, жирный, гарнитура Times". При логической разметке указывается логическое значение данного фрагмента, например, "это заголовок главы". Эти два способа разметки предназначаются, как правило, для использования в разных ситуациях. Для того чтобы распечатать текст на принтере, необходимо использовать физическую разметку. Должны быть приняты решения о размере полей и абзацных отступах. Ранние версии текстовых процессоров использовали только физический тип разметки. При этом для каждого фрагмента указывался шрифт, размер и стиль.
При обмене информацией с другими людьми физическое оформление текста накладывает ряд ограничений, особенно для онлайновых документов. Размер экрана, разрешение, шрифты различны для различных систем. По этим причинам все чаще используется логическое оформление текста. В некоторых случаях логическое оформление практически необходимо: при создании электронных документов типа страниц WWW или при создании и публикации объемных трудов, таких как книги.
Для сохранения разметки документов при передаче текстовой информации от машины к машине применяют разные способы. Текстовые процессоры и издательские системы используют специально разработанные форматы файлов, содержащие не только текст, но и информацию о том, как он должен быть оформлен. Основная проблема здесь в несовместимости таких форматов, хотя наиболее сложные программы обычно могут читать файлы в форматах программ-конкурентов. Примерами такого подхода являются текстовые процессоры Word и StarWriter.
При другом подходе непосредственно в текст документа вставляются специальные команды разметки. Даже если у вас нет программного обеспечения, поддерживающего такой формат, вы все же сумеете в нем разобраться. Существует немало способов подобного представления разметки текста, в том числе:
HyperText Markup Language (HTML), использующийся в World Wide Web;
TeX и LaTeX, пользующиеся популярностью у многих академических изданий, а также у математиков, физиков, химиков и даже музыкантов.
Примерами программ, которые позволяют разметить текст подобным образом, служат Netscape Composer и LyX (KLyX).
Файлы, созданные разными редакторами, зачастую имеют уникальные расширения, позволяющие, не заглядывая внутрь документа, догадаться о способах разметки текста. Так файлы, созданные редакторами подготовки plain-текста, часто имеют расширение .txt, а подготовленные в редакторе Lyx - .lyx. Текстовый процессор Word по умолчанию создает файлы в формате MS Word (расширение .doc), но поддерживает и другие форматы, например RTF (расширение .rtf). Документы, содержащие команды разметки языка HTML, имеют расширение .html или .htm.
Очевидно, что невозможно перечислить все текстовые редакторы. Многие из них "заточены" под ту или иную специфическую деятельность. В списке, рассмотренном ниже, представлена лишь небольшая часть текстовых редакторов.
Редакторы неформатированных текстов
NotePad - встроен в операционную систему Windows, понятен и прост и использовании;
McEdit - имеет сходство с редактором Edit из MS DOS, компонента файлового менеджера mc (Midnight Commander) ОС Linux;
KEdit - простейший текстовый редактор, входит в состав KDE Linux;
KWrite - текстовый редактор, имеющий ряд дополнительных настроек по сравнению с другими простейшими текстовыми редакторами;
Emacs - совмещает в себе функции файлового менеджера и текстового редактора; одной из отличительных черт является возможность создание макрокоманд (макросов); имеется во всех клонах Unix, в том числе и Linux; Emacs можно использовать и в MS Windows.
Редакторы, создающие текст с элементами разметки
Word - служит для создания разнообразных печатных документов, является компонентом офисных приложений в MS Windows;
StarWriter - входит в состав программы StarOffice, внешним видом и функциональностью он похож на Word, одинаково хорошо работает как в MS Windows, так и в ОС Linux;
LyX (KLyX в KDE) - современный текстовый редактор, предназначенный для людей, которые хотят получить документ, выглядящий профессионально, но затратить на его создание минимум времени; редактор вставляет в текст команды разметки TeX и LaTeX;
Netscape Composer - вставляет в текст команды разметки языка HTML, существуют версии как для ОС Linux, так и для MS Windows.
При обработке информации, связанной с изображением на мониторе, принято выделять три основных направления: распознавание образов, обработку изображений и машинную графику.
Основная задача распознавания образов состоит в преобразовании уже имеющегося изображения на формально понятный язык символов. Распознавание образов или система технического зрения (COMPUTER VISION) — это совокупность методов, позволяющих получить описание изображения, поданного на вход, либо отнести заданное изображение к некоторому классу (так поступают, например, при сортировке почты). Одной из задач COMPUTER VISION является так называемая скелетизация объектов, при которой восстанавливается некая основа объекта, его «скелет».
Обработка изображений (IMAGE PROCESSING) рассматривает задачи в которых и входные и выходные данные являются изображениями. Например, передача изображения с устранением шумов и сжатием данных, переход от одного вида изображения к другому (от цветного к черно—белому) и т.д. Таким образом, под обработкой изображений понимают деятельность над изображениями (преобразование изображений). Задачей обработки изображений может быть как улучшение в зависимости от определенного критерия (реставрация, восстановление), так и специальное преобразование, кардинально изменяющее изображения.
При обработке изображений существует следующие группы задач:
Ограничимся работой только с цифровым изображением. Цифровые преобразования по цели преобразования можно разделить на два типа:
— реставрация изображения - компенсирование имеющегося искажения (например, плохие условия фотосъемки);
— улучшение изображения - это искажение изображения с целью улучшения визуального восприятия или для преобразования в форму, удобную для дальнейшей обработки.
Компьютерная (машинная) графика (COMPUTER GRAPHICS) воспроизводит изображение в случае, когда исходной является информация неизобразительной природы. Например, визуализация экспериментальных данных в виде графиков, гистограмм или диаграмм, вывод информации на экран компьютерных игр, синтез сцен на тренажерах.
Компьютерная графика в настоящее время сформировалась как наука об аппаратном и программном обеспечении для разнообразных изображений от простых чертежей до реалистичных образов естественных объектов. Компьютерная графика используется почти во всех научных и инженерных дисциплинах для наглядности и восприятия, передачи информации. Применяется в медицине, рекламном бизнесе, индустрии развлечений и т. д. Без компьютерной графики не обходится ни одна современная программа. Работа над графикой занимает до 90% рабочего времени программистских коллективов, выпускающих программы массового применения.
Конечным продуктом компьютерной графики является изображение.Это изображение может использоваться в различных сферах, например, оно может быть техническим чертежом, иллюстрацией с изображением детали в руководстве по эксплуатации, простой диаграммой, архитектурным видом предполагаемой конструкции или проектным заданием, рекламной иллюстрацией или кадром из мультфильма.
Компьютерная графика — это наука, предметом изучения которой является создание, хранение и обработка моделей и их изображений с помощью ЭВМ, т.е. это раздел информатики, который занимается проблемами получения различных изображений (рисунков, чертежей, мультипликации) на компьютере.
В компьютерной графике рассматриваются следующие задачи:
— представление изображения в компьютерной графике;
— подготовка изображения к визуализации;
— создание изображения;
— осуществление действий с изображением.
Под компьютерной графикой обычно понимают автоматизацию процессов подготовки, преобразования, хранения и воспроизведения графической информации с помощью компьютера. Под графической информацией понимаются модели объектов и их изображения.
В случае, если пользователь может управлять характеристиками объектов, то говорят об интерактивной компьютерной графике, т.е. способность компьютерной системы создавать графику и вести диалог с человеком. В настоящее время почти любую программу можно считать системой интерактивной компьютерной графики.
Интерактивная компьютерная графика — это так же использование компьютеров для подготовки и воспроизведения изображений, но при этом пользователь имеет возможность оперативно вносить изменения в изображение непосредственно в процессе его воспроизведения, т.е. предполагается возможность работы с графикой в режиме диалога в реальном масштабе времени.
Интерактивная графика представляет собой важный раздел компьютерной графики, когда пользователь имеет возможность динамически управлять содержимым изображения, его формой, размером и цветом на поверхности дисплея с помощью интерактивных устройств управления.
Исторически первыми интерактивными системами считаются системы автоматизированного проектирования (САПР), которые появились в 60-х годах. Они представляют собой значительный этап в эволюции компьютеров и программного обеспечения. В системе интерактивной компьютерной графики пользователь воспринимает на дисплее изображение, представляющее некоторый сложный объект, и может вносить изменения в описание (модель) объекта. Такими изменениями могут быть как ввод и редактирование отдельных элементов, так и задание числовых значений для любых параметров, а также иные операции по вводу информации на основе восприятия изображений.
Растровая графика, общие сведения
Компьютерное растровое изображение представляется в виде прямоугольной матрицы, каждая ячейка которой представлена цветной точкой.
Основой растрового представления графики является пиксель (точка) с указанием ее цвета. При описании, например, красного эллипса на белом фоне необходимо указать цвет каждой точки эллипса и фона. Изображение представляется в виде большого количества точек — чем их больше, тем визуально качественнее изображение и больше размер файла. Т.е. одна и даже картинка может быть представлена с лучшим или худшим качеством в соответствии с количеством точек на единицу длины — разрешением (обычно, точек на дюйм — dpi или пикселей на дюйм — ppi).
Растровые изображения напоминают лист клетчатой бумаги, на котором любая клетка закрашена либо черным, либо белым цветом, образуя в совокупности рисунок. Пиксел — основной элемент растровых изображений. Именно из таких элементов состоит растровое изображение, т.е. растровая графика описывает изображения с использованием цветных точек (пиксели), расположенных на сетке.
При редактировании растровой графики Вы редактируете пиксели, а не линии. Растровая графика зависит от разрешения, поскольку информация, описывающая изображение, прикреплена к сетке определенного размера. При редактировании растровой графики, качество ее представления может измениться. В частности, изменение размеров растровой графики может привести к «разлохмачиванию» краев изображения, поскольку пиксели будут перераспределяться на сетке. Вывод растровой графики на устройства с более низким разрешением, чем разрешение самого изображения, понизит его качество.
Кроме того, качество характеризуется еще и количеством цветов и оттенков, которые может принимать каждая точка изображения. Чем большим количеством оттенков характеризуется изображения, тем большее количество разрядов требуется для их описания. Красный может быть цветом номер 001, а может и — 00000001. Таким образом, чем качественнее изображение, тем больше размер файла.
Растровое представление обычно используют для изображений фотографического типа с большим количеством деталей или оттенков. К сожалению, масштабирование таких картинок в любую сторону обычно ухудшает качество. При уменьшении количества точек теряются мелкие детали и деформируются надписи (правда, это может быть не так заметно при уменьшении визуальных размеров самой картинки — т.е. сохранении разрешения). Добавление пикселей приводит к ухудшению резкости и яркости изображения, т.к. новым точкам приходится давать оттенки, средние между двумя и более граничащими цветами.
С помощью растровой графики можно отразить и передать всю гамму оттенков и тонких эффектов, присущих реальному изображению. Растровое изображение ближе к фотографии, оно позволяет более точно воспроизводить основные характеристики фотографии: освещенность, прозрачность и глубину резкости.
Чаще всего растровые изображения получают с помощью сканирования фотографий и других изображений, с помощью цифровой фотокамеры или путем "захвата" кадра видеосъемки. Растровые изображения можно получить и непосредственно в программах растровой или векторной графики путем преобразовании векторных изображений.
Распространены форматы .tif, .gif, .jpg, .png, .bmp, .pcx и др.
Векторная графика, общие сведения
Векторная графика описывает изображения с использованием прямых и изогнутых линий, называемых векторами, а также параметров, описывающих цвета и расположение. Например, изображение древесного листа (см. рис. 1.) описывается точками, через которые проходит линия, создавая тем самым контур листа. Цвет листа задается цветом контура и области внутри этого контура.
В отличие от растровой графики в векторной графике изображение строится с помощью математических описаний объектов, окружностей и линий. Хотя на первый взгляд это может показаться сложнее, чем использование растровых массивов, но для некоторых видов изображений использование математических описаний является более простым способом.
Ключевым моментом векторной графики является то, что она использует комбинацию компьютерных команд и математических формул для объекта. Это позволяет компьютерным устройствам вычислять и помещать в нужном месте реальные точки при рисовании этих объектов. Такая особенность векторной графики дает ей ряд преимуществ перед растровой графикой, но в тоже время является причиной ее недостатков.
Векторную графику часто называют объектно—ориентированной графикой или чертежной графикой. Простые объекты, такие как окружности, линии, сферы, кубы и тому подобное называется примитивами, и используются при создании более сложных объектов. В векторной графике объекты создаются путем комбинации различных объектов.
Для создания векторных рисунков необходимо использовать один из многочисленных иллюстрационных пакетов. Достоинство векторной графики в том, что описание является простым и занимает мало памяти компьютера. Однако недостатком является то, что детальный векторный объект может оказаться слишком сложным, он может напечататься не в том виде, в каком ожидает пользователь или не напечатается вообще, если принтер неправильно интерпретирует или не понимает векторные команды.
При редактировании элементов векторной графики изменяются параметры прямых и изогнутых линий, описывающих форму этих элементов. Можно переносить элементы, менять их размер, форму и цвет, но это не отразится на качестве их визуального представления. Векторная графика не зависит от разрешения, т.е. может быть показана в разнообразных выходных устройствах с различным разрешением без потери качества.
Векторное представление заключается в описании элементов изображения математическими кривыми с указанием их цветов и заполняемости.
Еще одно преимущество — качественное масштабирование в любую сторону. Увеличение или уменьшение объектов производится увеличением или уменьшением соответствующих коэффициентов в математических формулах. К сожалению, векторный формат становится невыгодным при передаче изображений с большим количеством оттенков или мелких деталей (например, фотографий). Ведь каждый мельчайший блик в этом случае будет представляться не совокупностью одноцветных точек, а сложнейшей математической формулой или совокупностью графических примитивов, каждый из которых, является формулой. Это приводит к утяжелению файла. Кроме того, перевод изображения из растрового в векторный формат (например, программой Adobe Strime Line или Corel OCR—TRACE) приводит к наследованию последним невозможности корректного масштабирования в большую сторону. От увеличения линейных размеров количество деталей или оттенков на единицу площади больше не становится. Это ограничение накладывается разрешением вводных устройств (сканеров, цифровых фотокамер и др.).
Элементы (объекты) векторной графики. Объекты и их атрибуты
Основным логическим элементом векторной графики является геометрический объект. В качестве объекта принимаются простые геометрические фигуры (так называемые примитивы — прямоугольник, окружность, эллипс, линия), составные фигуры или фигуры, построенные из примитивов, цветовые заливки, в том числе градиенты.
Важным объектом векторной графики является сплайн. Сплайн — это кривая, посредством которой описывается та или иная геометрическая фигура. На сплайнах построены современные шрифты TryeType и PostScript.
Объекты векторной графики легко трансформируются и модифицируются, что не оказывает практически никакого влияния на качество изображения. Масштабирование, поворот, искривление могут быть сведены к паре—тройке элементарных преобразований над векторами.
Если в растровой графике базовым элементом изображения является точка, то в векторной графике — линия. Линия описывается математически как единый объект, и потому объем данных для отображения объекта средствами векторной графики существенно меньше, чем в растровой графике.
Линия — элементарный объект векторной графики. Как и любой объект, линия обладает свойствами: формой (прямая, кривая), толщиной, цветом, начертанием (сплошная, пунктирная). Замкнутые линии приобретают свойство заполнения. Охватываемое ими пространство может быть заполнено другими объектами (текстуры, карты) или выбранным цветом. Простейшая незамкнутая линия ограничена двумя точками, именуемыми узлами. Узлы также имеют свойства, параметры которых влияют на форму конца линии и характер сопряжения с другими объектами. Все прочие объекты векторной графики составляются из линий. Например, куб можно составить из шести связанных прямоугольников, каждый из которых, в свою очередь, образован четырьмя связанными линиями.