Использование стандарта SVG для визуализации данных в Интернет
Богомолов Н.А., Ковалев А.Д., Синицын М.Н
Долгое время в Интернет отсутствовал общепризнанный стандарт представления двумерной
векторной графики. В сентябре 2001 года консорциумом W3C был принят такой стандарт,
получивший название SVG - Scalable Vector Graphics. Синтаксис SVG
основан на стандарте XML. Таким образом, для обработки SVG-документа могут
использоваться любые средства работы с XML документами. SVG включает в себя
богатые базовые графические возможности, сравнимые с имеющимися в пакетах
CorelDraw и Adobe Illustrator:
- произвольные заливки, включая штриховку, градиентные заливки, заливку заданным растром или произвольным фрагментом векторного (SVG) изображения,
- разнообразные стили линий - линии произвольной толщины, штриховые, с различными стилями угловых и конечных точек,
- возможность использования кубических (обычных) и квадратичных кривых Безье,
- любой фрагмент изображения может быть сделан полупрозрачным (с заданной степенью прозрачности),
- хотя это не оговорено явно в стандарте, имеющиеся реализации поддерживают вывод на экран в режиме так называемого антиалиасинга, в котором наклонные линии выглядят заметно менее "зазубренными" (меньше сказывается пиксельная структура изображения),
- возможность использования преобразований, типичных для растровых изображений (размытие, попиксельное наложение изображений в разных режимах, различные варианты изменения цвета отдельных пикселей изображения),
- богатая шрифтовая многоязыковая поддержка, за счет использования UNICODE в одном SVG документе могут присутствовать тексты на разных языках,
- возможность расположения текстовых строк вдоль произвольных кривых,
- возможность объявить произвольный фрагмент изображения самостоятельным объектом и использовать его многократно путем указания только ссылки, без его повторного описания,
- встроенные развитые средства анимации, позволяющие без дополнительного программирования в реальном времени менять практически любые атрибуты фрагмента изображения или его отдельных объектов (координаты, цвета, прозрачность, коэффициенты трансформации и т.д.),
- встроенная поддержка каскадных таблиц стилей (CSS).
Важной характеристикой стандарта SVG является то, что объектная модель SVG документа
основана на принятом консорциумом W3C в 2000 году стандарте DOM (Document Object Model)
Level 2. Это дает возможность использования стандартных языков (Java, JavaScript и других)
для начального построения и произвольного манипулирования любыми составляющими элементами
изображения (SVG документа). Составной частью стандарта SVG является и модель событий DOM
Level 2 Events. Эта модель позволяет достаточно легко реализовывать с помощью SVG
интерактивные графические изображения.
Для просмотра документов SVG в Интернет браузере нужно установить дополнительный plug-in
модуль. В настоящее время наиболее распространен модуль просмотра SVG, разработанный фирмой
Adobe (SVG Viewer 3.0). Можно предположить, что вскоре модуль просмотра SVG будет входить
в стандартную поставку браузера, так же как модули просмотра файлов в форматах PDF и FLASH.
При установленном модуле просмотра, файлы в формате SVG можно открывать в Интернет браузере
как независимые документы, их можно также включать в состав HTML документа с помощью тэгов
<IMAGE> и <EMBEDDED>. Что касается распространенных графических пакетов, то в настоящее
время формат SVG поддерживают продукты фирм Corel и Adobe.
Стандарт SVG активно развивается при участии ведущих разработчиков ПО (Microsoft, Adobe,
Corel и др.). Последней утвержденной версией стандарта SVG является в версия 1.1 (январь
2003 года), в январе 2004 года ожидается утверждение версии 1.3. Это позволяет сделать
вывод о том, что стандарт SVG и сопутствующие программные средства будут в обозримом
будущем активно развиваться и все более широко использоваться. Подробнее о планах развития
SVG и имеющейся поддержке можно узнать на
http://www.w3.org/Graphics/SVG.
Ближайшими конкурентами SVG можно назвать форматы VML и FLАSH. Разработанный в Microsoft
формат VML (Vector Markup Language) также основан на XML и близок по концепции,
возможностям и даже по названиям тэгов к SVG. Это формат в 1998 году был представлен
консорциуму W3C для стандартизации, но был отвергнут в пользу SVG. Судя по отсутствию
свежей информации на сайте Microsoft, формат VML больше не развивается и не поддерживается
никем кроме самой Microsoft.
Формат FLАSH в настоящее время более широко распространен в Интернет чем SVG. Он применяется
в основном для создания небольших анимированных роликов. Это объясняется ориентацией
формата FLАSH на публикацию в Интернет анимаций и наличием развитых инструментальных
средств создания FLASH фильмов. К числу недостатков формата FLASH по сравнению с SVG
следует отнести следующее:
- формат FLASH не утвержден в качестве стандарта,
- он обладает более "бедными" базовыми графическими возможностями,
- встроенный язык сценариев ActionScript, обладает существенно меньшими возможностями, для создания интерактивных изображений, чем встроенный в SVG JavaScript.
Приведем несколько ссылок на наиболее интересные Интернет ресурсы, связанные с SVG:
- http://www.w3.org/Graphics/SVG - базовый для SVG сайт, содержащий полную документацию, планы развития, список поддерживающих SVG программ, ссылки на другие связанные с SVG сайты,
- http://www.w3.org/TR/SVG11 - подробное описание стандарта SVG версии 1.1,
- http://www.adobe.com/svg - описание возможностей документация и примеры использования разработанного в Adobe модуля просмотра SVG файлов
- http://www.carto.net - сайт посвящен использованию формата SVG для представления в Интернет картографической информации.
В течение нескольких последних лет авторы разрабатывают инструментальные программные
средства представления в Интернет разнородной территориально привязанной информации.
Созданные средства основаны на разработанном авторами развитом клиентском ПО,
обеспечивающем в том числе динамическую генерацию на компьютере клиента сложных
интерактивных векторных изображений - интерактивных тематических карт, диаграмм и т.д.
В существующей в настоящее время версии ПО графика нижнего уровня реализована средствами
Java.
Получающий все большее распространение формат SVG обладает рядом преимуществ по сравнению
с Java в части динамического создания сложных интерактивных векторных изображений:
- существенно большие графические возможности SVG по сравнению с Java,
- возможность использования для подготовки изображений профессиональных графических пакетов (CorelDraw, Adobe Illustrator),
- возможность получения созданных в процессе работы WEB-приложения изображений в векторном виде для последующей вставки в документы пользователя или печати с полным использованием разрешающей способности принтера,
- уменьшение объема ПО, пересылаемого на клиентский компьютер в процессе работы WEB-приложения, за счет исключения графических процедур нижнего уровня.
В этом году была исследована возможность использования SVG в качестве базы для
динамического создания интерактивных тематических карт. Опыт создания альфа версии
клиентского ПО, основанного на SVG, показал многочисленные положительные свойства
и удобство этого формата для динамического создания сложных интерактивных изображений
в среде Интернет браузера. Доклад подготовлен при поддержке РФФИ, грант № 02-07-90236.
|