Websoft

воскресенье, июля 22, 2007

Векторная графика в браузерах

Использование векторной графики в web-контенте - давняя мечта всех web-разработчиков. И, к сожалению, мечта пока трудноосуществимая. Да, есть Microsoft VML. Есть Adobe SVG. Не так давно это ряд пополнился еще одним членом: HTML Canvas. Казалось бы, используй - не хочу. Ан нет. Каждый из этих стандартов имеет ограничения и, как обычно, из-за разброда и шатаний в стане разрабочиков.


VML (Vector Markup Language) - достаточно старая разработка Microsoft (не стоящая на месте, разумеется), используемая этой компанией во многих своих продуктах. Хотя VML-код получается слегка громоздким, но язык открывает для разработчика отличные возможности - можно нарисовать практически любые формы (хотя чаще всего это - графики и всякого рода диаграммы), VML-код можно спокойно вставлять в обычные HTML-страницы... Но единственный браузер, который его поддерживает... угадаете с одного раза какой? :)


SVG (Scalable Vector Graphics) - разработка Adobe, которую консорциум W3C (определяющий стандарты для Web) принял в качестве стандарта для векторной графики. Действительно очень "правильный" стандарт, с логичной и четкой структурой кода. И тоже позволяет нарисовать практически все (например, этот классический пример тигра слева нарисован в SVG), включая простейшую векторную анимацию. Но тоже не без проблем - например, inline SVG, т.е. включение SVG-кода непосредственно в страницу работает не во всех браузерах. К тому же, MSIE - самый распространенный браузер - нуждается в установке дополнительного SVG Player, чтобы его показывать. Таким образом, на деле SVG оказался в странном положении - с одной стороны, это "настоящий" de jure стандарт, с другой - нежелание прямой его поддержки со стороны Microsoft очевидно помешало его закреплению. Хотя практически все современные Gecko-based браузеры его поддерживают.



HTML Canvas - разработка группы WHATWG (Web Hypertext Application Technology Working Group). В отличие от декларативного стиля VML и SVG, непосредственно описывающим формы, автору предлагается пространство, в котором рисование происходит с помощью команд (например, через JavaScript). К сожалению, возможности Canvas пока значительно уступают обоим конкурентам. Тем не менее, для рисования простых векторных форм и их динамического изменения это вполне неплохое решение. К сожалению, список браузеров в этом случае также невелик: Apple Safari (первый браузер, предложивший использование Canvas) и FireFox c братьями.

Комментариев нет: