Рисование svg html. Масштабируемая векторная графика в HTML5
Рисование svg html. Масштабируемая векторная графика в HTML5
11.01.2022
Векторная графика широко применима в печатной продукции. Что касается веб-сайта, то здесь мы также можем использовать векторную графику посредством SVG или Scalable Vector Graphics (масштабируемая векторная графика). В официальной спецификации W3.org описывается следующим образом:
Язык для описания двумерной графики посредством XML. SVG позволяет нам использовать три типа графических объектов: векторные графические фигуры (например, пути, состоящие из прямых и кривых линий), изображений и текст.
Технология была доступна аж с 1999 года, и 16 августа 2011 года вошла в список рекомендаций W3C. Тем не менее, SVG до сих пор не так часто используется, несмотря на множество преимуществ в использовании векторной графики вместо растровой.
Преимущества масштабируемой векторной графики
С точки зрения использования графики на страницах веб-сайта, масштабируемая векторная графика предлагает нам несколько преимуществ над растровой графикой, которые включают в себя:
Независимость от разрешения
Растровая графика (или Bitmap) зависит от разрешения, так как она создана при помощи пикселей. Если такой графический элемент увеличить в размере, то сразу станут видны большие квадратики. С векторной же графикой такого не происходит, потому что она не зависит от разрешения, а вместо этого построена на математических вычислениях, что позволяет нам увеличить ее до любых размеров и не терять в качестве.
Сокращение HTTP-запросов
Масштабируемая векторная графика можете быть встроена напрямую в HTML-документ при помощи тега svg, так что браузеру не нужно будет дополнительный запрос для графики. Это также положительно сказывается на производительности веб-сайта.
Стилизация и скриптинг
Прямая интеграция при помощи тега svg также позволит нам стилизовать графику при помощи CSS. Мы можем изменять такие параметры объекта как цвет фона, непрозрачность, границы и так далее, таким же образом, как это происходит в HTML. Мы также можем управлять графикой посредством javascript.
Возможность анимации и редактирования
SVG-объект может быть анимирован при использовании анимационного элемента или посредством JS-библиотеки вроде jQuery. SVG-объект также может быть отредактирован посредством любого текстового редактора или графического ПО вроде (бесплатен) или .
Меньший размер файла
SVG имеет меньший размер файлов в сравнении с растровой графикой.
Рисуем простые фигуры, используя SVG
Следуя спецификации, мы можем рисовать вроде многоугольников, окружностей, линий или эллипсов посредством SVG и, для того, чтобы браузер генерировал масштабируемую векторную графику, все эти графические элементы должны быть помещены в теги «svg». Давайте рассмотрим на примерах, представленных ниже:
Линия
Для того чтобы нарисовать линию при помощи SVG, мы можем использовать элемент «line». Этот элемент используется для рисования одной прямой линии, поэтому он будет состоять всего из двух точек: начальной и завершающей.
Как вы можете видеть выше, координата начальной точки линии указана в первых двух атрибутах х1 и х2, а координата завершающей точки указана атрибутами y1 и y2.
Здесь также есть два других атрибута: stroke и stroke-width, которые отвечают за цвет и ширину границы. С другой стороны, мы также можем определить эти атрибуты в строчном стиле, следующим образом:
Style="stroke-width:1; stroke:rgb(0,0,0);"
и это даст нам тот же результат.
*
Ломаная линия
Здесь все очень сходится с «line», но посредством элемента «polyline» мы можем нарисовать несколько линий, вместо одной. Вот пример:
Элемент «polyline» имеет атрибуты точек, которые содержат все координаты линий.
*
Прямоугольник
Нарисовать прямоугольник мы можем так же просто, только при помощи элемента «rect». Нам только лишь нужно будет указать ширину и высоту:
*
Окружность
Мы также можем нарисовать окружность посредством элемента «circle». В этом примере мы нарисуем окружность с радиусом 100, который определяется атрибутом r:
Первые два атрибута, cx и cy, определяют центральную координату окружности. В вышеприведенном примере мы выставили 102 как для координаты x, так и для y. Если эти атрибуты не будут заданы, то по умолчанию они будут составлять 0.
*
Эллипс
Мы можем нарисовать эллипсы посредством элемента «ellipse». Здесь все работает примерно так же, как и с кругом, но на этот раз мы можем управлять отдельно радиусом линии х и радиусом линии y посредством атрибутов rx и ry.
*
Многоугольник
С помощью элемента «polygon» мы можем рисовать многоугольники, фигуры с несколькими углами и сторонами вроде треугольника, восьмиугольника. Пример:
*
Применение редактора векторной графики
Как видно, рисовать простые фигуры при помощи SVG в HTML довольно просто. Тем не менее, если нам нужен более сложный объект, то этот метод нам уже не подойдет.
К счастью, как мы уже указали выше, мы можем использовать редактор векторной графики вроде Adobe Illustrator или Inkscape для того, чтобы проделать эту работу. Если вы знакомы с этим ПО, то вы без труда сможете рисовать объекты при помощи удобного интерфейса, нежели при помощи кода HTML.
Либо вы также можете встроить сам svg-файл при помощи одного из следующих элементов: embed, iframe, object.
Результат будет схожим.
В данном примере мы использовали с .
*
Браузерная поддержка масштабируемой векторной графики
Что касается поддержки в браузерах, то масштабируемая векторная графика уже сейчас отлично поддерживается во за исключением IE8 и более ранних версий. Но это можно исправить при помощи javascript-библиотеки под названием . Чтобы облегчить задачу, мы воспользуемся инструментом , чтобы конвертировать наш SVG-код в формат, поддерживаемый Raphael.
Для начала, скачайте и включите библиотеку Raphael.js в ваш HTML-код. Затем, загрузите svg-файл на сайт, скопируйте и вставьте сгенерированный код в следующую функцию load:
Window.onload=function() { //the Raphael code goes here }
Внутри тега body вставьте следующий div с id атрибутом rsr.
И на этом мы закончили! Посмотрите пример, приведенный по ссылке ниже.
В завершение
Итак, это и есть основы SVG. Мы надеемся, что теперь вы немного понимаете этот предмет. Это один из лучших способов оптимизировать производительность ваших страниц, и при этом предоставить графику, способную отчетливо отображаться даже на экранах Retina.
Как обычно, если вы любознательны, то мы подготовили для вас небольшую подборку дополнительных статей.
* (Введение в SVG) * (SVG: не будем зависеть от разрешения) * (Почему бы не использовать SVG?)
Спасибо за чтение, и надеемся, что данная статья окажется полезной вам!
Внимание! У вас нет прав для просмотра скрытого текста.
Для включения изображения в определенном месте страницы существует тег . Этот тег имеет обязательный параметр: SRC="", и несколько необязательных. Параметр SRC="" указывает браузеру адрес, где искать рисунок и в качестве значения должен иметь URL-адрес ресурса, где размещен графический файл. В простейшем случае этот файл будет размещен в корневом каталоге или в папке IMG Вашего сайта. Необязательные параметры:
Параметр ALT="" в качестве значения содержит надпись, рассказывающую о содержании изображения для тех посетителей, браузеры которых не поддерживают графику или работают в режиме отключенной графики. Эта же надпись появляется при наведении указателя мышки на изображение.
Параметры WIDTH="" HEIGHT="" в качестве значений имеют размеры изображения по ширине и высоте в пикселях. Эти параметры желательно указывать в коде страницы, чтобы браузер заранее оставлял место для изображения, тогда, при загрузке, страница будет меньше "дергаться". Кроме того, эти параметры можно употреблять для регулирования размеров рисунка в окне браузера.
Параметр BORDER="" прорисовывает рамку вокруг изображения. В качестве значения указывается цифра, указывающая ширину рамки в пикселях.
Параметр ALIGN= определяет положение изображения на странице, и может принимать значения TOP - выравнивает верхнюю границу изображения по самому высокому элементу текущей строки, TEXTTOP - выравнивает верхнюю границу изображения по самому высокому текстовому элементу текущей строки, MIDDLE - выравнивает середину изображения по базовой линии текущей строки, ABSMIDDLE - выравнивает середину изображения посередине текущей строки. BASELINE или BOTTOM - выравнивает нижнюю границу изображения по базовой линии текущей строки, ABSBOTTOM - выравнивает нижнюю границу изображения по нижней границе текущей строки, HSPACE= - определяет отступ по горизонтали, VSPACE= - определяет отступ по вертикали.
Синтаксис тэга:
Бегущая строка
Бегущая строка задается тегом .
Атрибутами этого тэга являются bgcolor - цвет фона бегущей строки, height - высота строки, width - ширина строки.
Direction - задает направление движения бегущей строки - direction="left" (right, up, down) - движение влево (вправо, вверх, вниз).
Behavior - поведение строки - behavior="scroll" (slide, alternate). Scroll - обычная прокрутка (можно не прописывать, оно так и есть по умолчанию)
Slide - прокрутка с остановкой, строка пробегает до края и останавливается. Если одновременно с behavor="slide" употребить параметр loop, то строка прокрутится установленное количество раз и остановится у края. Alternate - строка будет двигаться от края к краю. Scrollamount - скорость движения строки, scrollamount="1". Может принимать значения от 1 до 10. 1 - самое медленное движение, 10 - самое быстрое.
Синтаксис тега:
Современные веб-браузеры могут воспроизводить видео и звуковые файлы различных форматов. Для этого они используют встроенные проигрыватели (plug-in, элементы управления ActiveX) или внешние программы проигрыватели. Вставить звук или видео в HTML-документ можно с помощью различныз тегов:
При решении вставить звук и/или видео в HTML-документ следует учитывать, что соответствующие файлы имеют довольно большой объем. Наиболее популярными в веб сейчас являются файлы звуковых форматов MP3, WMA, AIFF, AU, RealAudio (c расширением ra и ram), MP4, MIDI и видеоформатов MPEG, MOV. Звуковой формат WAV и видеоформат AVI в Интернете используются довольно редко.
SVG – это язык разметки для описания двухмерных графических приложений и изображений,
входящий в подмножество расширяемого языка разметки XML. Сюда относится также ряд связанных графических скриптов.
SVG поддерживается всеми современными браузерами для ПК и мобильных телефонов.
Некоторые функции, такие как SMIL анимации и SVG Fonts распространены не так широко.
Последней версией полной спецификации является SVG 1.1.
SVG 2 находится в стадии разработки. В нее будут добавлены новые, простые в использовании функции для SVG,
а также идут работы по более тесной интеграции с HTML, CSS и DOM.
Достоинства SVG
Графика в формате SVG создается с использованием математических формул, которые при изменении размера изображения можно скорректировать.
Таким образом векторные изображения масштабируются лучше, чем растровые.
Размер векторной картинки обычно меньше, чем у сравнимых по качеству изображений в форматах JPEG, GIF или PNG.
SVG графика имеет текстовый формат, который можно и править в блокноте, и рисовать в графических векторных редакторах Adobe Illustrator, CorelDRAW.
Cкрипты и анимация в SVG позволяют создавать динамичную и интерактивную графику.
Текст в графике SVG является текстом, а не изображением, поэтому он индексируется поисковыми системами.
В SVG изображение можно добавить несколько ссылок.
К SVG формату можно подключать внешние таблицы стилей CSS, глобальные стили внутри контейнера
или добавлять внутренние стили с помощью атрибута style в тегах фигур и путей.
Вставка SVG на Web-страницу
SVG-изображение можно вставить на Web-страницу несколькими способами. Первый из них – это простая вставка SVG-кода на страницу
(при большой картинке HTML-код страницы станет огромным и трудно читаемым). При других способах сначала надо сохранить
SVG-код в файле с расширением .svg
.
Итак, способы вставки SVG-изображения на Web-страницу:
прямая вставка кода в HTML-документ в контейнере ;
использование SVG-файла в качестве фонового изображения;
подключение SVG-файла в HTML-документ с помощью тегов img
, embed
, object
и iframe
;
подключение SVG-файла в PHP-документ с помощью функции include
.
1. Прямая вставка SVG-кода в Web-документ
2. Использование SVG-файла в качестве фонового изображения
Введение
Когда беспроводной маршрутизатор D-Link DIR-645 попал в нашу лабораторию, мы долго не могли отделаться от ощущения чего-то старого и доброго, очень уж он на вид походил то ли на кофемолку, то ли на термос, а может, даже и на...
Дата публикации: 22.02.2014
Частое и очень раздражающее любого, кто садится за компьютер, явление. Возникает у неопытных пользователей, а также при наплевательском отношении к компьютеру. Разбираем все возможные причины торможения и способы...
С 1 января 2019 года вступил в силу новый ГОСТ 34.10-11.12, регулирующий процессы создания и проверки ключей электронной цифровой подписи (ЭЦП). На официальном сайте провайдера (https://www.cryptopro.ru/) стали доступны две новые версии плагина для...