Чем проще пользовательская задача, тем болше программ под Linux её решают. В частности, манипуляция геометрическими фигурами с возможностью изменения их параметров (цвета, размера и т. п.), хранением набора фигур в файле и преобразованием получившегося изображения в растровый формат — довольно простая задача, требующая аккуратной реализации основных функций какой-нибудь высокоуровневой библиотеки (или двух — интерфейсной и графической). Неудивительно, что редакторы с подобными возможностями есть и для каждого рабочего стола, и независимо от них. Это утверждение относится и к ещё более простым программам работы с растровой графикой. Ниже описаны только существенно более сложные программы.
Векторная графика
Векторной графикой называется способ работы с изображениями, при котором оно представлено в виде фигур, каждая из которых имеет собственное описание (тип, размеры, кривизну или иные параметры составных частей, их цвета, способ представления и т. п.). Некоторые графические устройства (например, распознающие формат PostScript) умеют сами интерпретировать описания фигур, для других необходимо заранее просчитать и сформировать картинку программным путём.
Работа с PostScript и PDF
Современная полиграфия уже не мыслится в отрыве от компьютеров, все допечатные материалы обычно суествуют в электронной форме, и именно электронные документы подаются на печатающие устройства для вывода. Причём для современной полиграфии de facto стандартом является формат PostScript. PostScript — это язык описания страницы, позволяющий представить любые полиграфические материалы в векторном формате (однако он допускает и включение растровых фрагментов). Файл в формате PostScript фактически представляет собой программу, описывающую, какие действия нужно произвести, чтобы получить требуемый вывод. Профессиональные печатающие устройства умеют непосредственно интерпретировать документы на языке PostScript.
PDF (Portable Document Format, переносимый формат документов) — модификация языка PostScript, разработанная для того, чтобы обмениваться полиграфическими документами через Internet. В PDF есть специальные возможности для публикации документов в Сети, в частности, поддержка гиперссылок, а некоторые возможности языка PostScript оттуда, наоборот, исключены.
Ghostscript — интерпретатор языка описания страниц PostScript и файлов в формате PDF (формат переносимых документов). Ghostscript преобразует PostScript во многие растровые форматы, подходящие для вывода данных на экран или на принтер, не поддерживающий PostScript. Обычно Ghostscript используется для просмотра файлов PostScript и для печати на принтерах, не поддерживающих язык PostScript, GhostScript используется множеством приложений для вывода данных на печать. Графический интерфейс для GhostScript предоставляет программа GhostView (команда gv
), она позволяет отображать документы в форматах PostScript и PDF в графической среде X Window System. Для различных манипуляций с файлами в формате PostScript предназначен пакет утилит командной строки psutils
, с их помощью можно выбрать, переупорядочивать, масштабировать страницы в PostScript-файлах, изменять параметры текста и делать многое другое.
Специально для просмотра PDF-файлов предназначена программа xpdf
, она позволяет переходить по гиперссылкам в документе, просматривать структуру документа, производить поиск и поддерживает сглаживание шрифтов. Альтернативой xpdf
может быть Acroread
— версия известного приложения Adobe Acrobat для Linux, однако, в отличие от xpdf
, оно является несвободным программным продуктом.
Диаграммы
Отдельно стоит упомянуть редакторы диаграмм, которые часто смешивают с обычными редакторами векторной (плакатной) графики. Между тем задачи у них разные: если для плакатной графики главное — построение «картинки», соответствующей задумке автора по внешнему виду, то в диаграмме автора более беспокоит логическое соответствие изображения проекту и его наглядность. Поэтому при постоении диаграммы много внимания уделяется «стрелочкам» и прочим соединительным линиям, оптимальному размещению объектов на странице, типизации объектов и т. п. Самая старая из подобных утилит, xfig
, и по сей день активно используется, формат её диаграмм разпознают многие средства работы с векторной графикой. Более мощной является ориентированная на среду Gnome утилита Dia
, возможности которой продолжают расти (есть даже проект перевода диаграмм в нотации языка моделирования программных продуктов UML непосредственно в текст на C++
). Аналогом Dia
для KDE является встроенная в пакет KOffice утилита Kivio
.
Плакатная графика
Что же касается собственно векторной (плакатной) графики, то и здесь есть из чего выбирать. Например, Sodipodi
— программа векторного рисования общего назначения. Она использует подмножество формата W3C SVG в качества формата собственных файлов. Применяется новейшее ядро для отображения, со сглаживанием, альфа-каналом и векторными шрифтами. Сходными возможностями обладает и отпочковавшаяся от Sodipodi
программа Inkscape
, главным отличием которой является полная поддержка формата SVG и ориентация на среду Gnome. Многообещающе выглядит проект Skencil
, позволяющий редактировать некоторые виды PostScript-файлов. Среда KDE также имеет «свой» редактор векторной графики, Karbon14
, входящий в состав семейства программа KOffice.
Растровая графика
Растровая графика означает работу с изображением, представленным в виде матрицы точек («пикселей»). Это значит, что при сильном увеличении границы любого объекта будут выглядеть «лесенкой» из точек (в отличие от векторного представления, где увеличение повышает качество изображения). С другой стороны, растр — удобный для компьютерной обработки формат представления фотографий, сделанных от руки рисунков и прочих изображений, которые нельзя расчленить на отдельные фигуры.
В GNU/Linux есть развитые средства для редактирования растровой графики. Самым мощным из них является GIMP
(GNU Image Manipulation Program). С её помощью пользователь сможет редактировать изображения, создавать логотипы и другие графические элементы особенно полезные при создании Web-страниц. GIMP включает много инструментов и фильтров, аналогичных тем, которые можно найти в коммерческих графических редакторах, а также несколько возможностей, эксклюзивных для этой программы. GIMP предоставляет возможность работать с цветовыми каналами, уровнями изображения, накладывать эффекты, сглаживать шрифты и конвертировать изображения в разные форматы. В GIMP имеется собственный язык программирования сценариев (на основе Scheme), на котором можно создавать довольно замысловатые дополнения к основной программе. Недостаток GIMP — слабая (оформленная в виде дополнения) поддержка цветового стандарта CMYK, используемого в полиграфии, поэтому в электронной документации, редактировании изображений для www-страниц и прочих областях, не имеющих дела с бумагой, его применяют чаще.
Очень полезен набор утилит для обработки графики из командной строки — ImageMagick. В этот набор входят утилиты для отображения (display
), преобразования (convert
) изображений, захвата изображений с экрана (import
) и даже собственный интерпретируемый язык программирования, Magick Scripting Language. Для полуавтоматического перевода из растрового представления в векторное существует несколько специальных утилит, например, autotrace/autofig
или potrace
.
Трёхмерная графика
Для Linux создано несколько программных пакетов, работающих с пространственныим представлением объектов.
Исходные тексты одного из самых мощных пакетов трёхмерного моделирования, персчёта (рендеринга) и анимации — Blender
— в 2002 году были открыты и весь проект полностью переведён под свободную лицензию. Авторы Blender пришли к выводу, что открытая разработка инструмента более эффективна и прибыльна для тех, кто этим инструментом (а не его продажей) зарабатывает. Для этого пришлось выкупить находящиеся в собственности спонсоров части проекта у хозяев за сумму сто тысяч евро. Искомую сумму предоставило сообщество ползователей Blender, уже тогда немалое: каждый внёс сколько смог, и менее, чем за два месяца, денег на счёте оказалось достаточно. С тех пор круг пользователей и возможности Blender продолжают постоянно расти.
Для выполнения задач, совмещаемых Blender, есть и отделные программные средства. Например, популярный пакет трассировки лучей (трёхмерного проектирования и сценографии) POV-Ray, с помощью которого создаются проекты удивительной сложности и красоты (например, перевод картины Уильяма Марлоу «Каприччо» в трёхмерное представление — с тем только, чтобы из определённой точки повторить её). Многие графические редакторы имеют встроенные средства анимации, а иные (как, например, CinePaint, называвшийся ранее FilmGimp) специально разрабатываются для мультипликаторов.
Не стоит забывать, что популярный нынче стандарт OpenGL — открытый; он разрабатывался для UNIX-подобных систем и используется большим числом программ для Linux (в том числе и Blender). К сожалению, производители аппаратного обеспечения (видеокарт), как правило, скрывают не только устройство своих карт, но даже и способ их низкоуровнего использования. Поэтому в открытом доступе оказываются лишь готовые драйверы (без исходных текстов) к некоторым версиям ядра Linux и определённым сборкам XFree86. Отображение трёхмерных объектов с пересчётом на программном уровне пока работает существенно медленнее, хотя ничуть не хуже, поэтому используя OpenGL для игр и прочих программ, требующих действительно быстрой работы графической подсистемы, нужно всегда помнить о необходимости получить — возможно, несвободный — драйвер.