Изображения SVG определяются в векторном графическом формате и хранятся в текстовых файлах XML. Таким образом, изображения SVG можно масштабировать без потери качества, а файлы SVG можно искать , индексировать , заскриптовывать и сжимать . Текстовые файлы XML можно создавать и редактировать с помощью текстовых редакторов или редакторов векторной графики , и они отображаются большинством веб-браузеров . При использовании для изображений SVG может содержать скрипты или CSS, что потенциально приводит к атакам с использованием межсайтового скриптинга или другим уязвимостям безопасности.
История
SVG находится в разработке в рамках Консорциума Всемирной паутины (W3C) с 1999 года после того, как в 1998 году в консорциум было подано шесть конкурирующих предложений по языкам векторной графики (см. ниже). [3]
Первоначальная рабочая группа SVG решила не разрабатывать ни одну из коммерческих версий, а создать новый язык разметки , который был бы основан на них, но не основывался бы ни на одной из них. [3]
Разработка SVG началась в 1998 году рабочей группой W3C SVG после получения шести конкурирующих заявок на векторную графику:
В то время председателем рабочей группы был Крис Лилли из W3C.
Раннее внедрение было ограничено из-за отсутствия поддержки в старых версиях Internet Explorer. Однако с 2011 года все основные настольные браузеры начали поддерживать SVG. Собственная поддержка браузеров дает различные преимущества, такие как отсутствие необходимости в плагинах, возможность смешивать SVG с другим контентом и повышение надежности рендеринга и скриптинга. Мобильная поддержка SVG существует в различных формах, при этом различные устройства и браузеры поддерживают SVG Tiny 1.1 или 1.2. SVG можно создавать с помощью векторных графических редакторов и отображать в растровых форматах. В веб-приложениях Inline SVG позволяет встраивать контент SVG в HTML-документы.
Спецификация SVG была обновлена до версии 1.1 в 2011 году. Scalable Vector Graphics 2 стала кандидатом на рекомендацию W3C 15 сентября 2016 года. SVG 2 включает в себя несколько новых функций в дополнение к функциям SVG 1.1 и SVG Tiny 1.2. [9]
SVG 1.1 стал рекомендацией W3C 14 января 2003 года. [11] Спецификация SVG 1.1 является модульной, чтобы позволить определять подмножества как профили. Помимо этого, между SVG 1.1 и SVG 1.0 очень мало различий.
SVG Tiny и SVG Basic (профили Mobile SVG) стали Рекомендациями W3C 14 января 2003 года. Они описываются как профили SVG 1.1. [12]
SVG Tiny 1.2 стал Рекомендацией W3C 22 декабря 2008 года. [13] Первоначально он был разработан как профиль запланированного SVG Full 1.2 (который с тех пор был отклонен в пользу SVG 2), [14] но позже был рефакторингован как отдельная спецификация. Он, как правило, плохо поддерживается.
Второе издание SVG 1.1, включающее все исправленные ошибки и пояснения, но не содержащее новых функций по сравнению с оригинальной версией SVG 1.1, было выпущено 16 августа 2011 года. [15]
SVG Tiny 1.2 Portable/Secure, более безопасное подмножество профиля SVG Tiny 1.2, представленное в качестве проекта стандарта IETF 29 июля 2020 года. [16] Также известно как SVG Tiny P/S. SVG Tiny 1.2 Portable/Secure является требованием проекта стандарта BIMI . [17]
Версия 2
SVG 2 удаляет или отменяет некоторые функции SVG 1.1 и включает новые функции из HTML5 и Web Open Font Format : [18]
Например, SVG 2 удаляет несколько элементов шрифта, таких как glyphи altGlyph(заменяются форматом шрифта WOFF).
Атрибут xml:spaceустарел в пользу CSS.
Добавлены такие функции HTML5, как translateи атрибуты.data-*
Функции обработки текста из SVG Tiny 1.2 аннотированы как включенные, но пока не формализованы в тексте. [19] Некоторые другие функции 1.2 отобраны выборочно, [18] но SVG 2 не является надмножеством SVG tiny 1.2 в целом.
SVG 2 достиг стадии рекомендации кандидата 15 сентября 2016 года [20] , а пересмотренные версии были опубликованы 7 августа 2018 года и 4 октября 2018 года [21]. Последний проект был выпущен 8 марта 2023 года [22].
Функции
SVG поддерживает интерактивность, анимацию и богатые графические возможности, что делает его пригодным как для веб-приложений, так и для печатных приложений. Изображения SVG можно сжимать с помощью алгоритма gzip , что приводит к файлам SVGZ, которые обычно на 20–50% меньше оригинала. SVG также поддерживает метаданные, что позволяет улучшить индексацию, поиск и извлечение контента SVG.
Хотя спецификация SVG в первую очередь фокусируется на языке разметки векторной графики , ее дизайн включает в себя основные возможности языка описания страниц , например, Adobe PDF . Он содержит положения для насыщенной графики и совместим с CSS для целей стилизации. SVG содержит информацию, необходимую для размещения каждого глифа и изображения в выбранном месте на печатной странице. [23]
Сценарий и анимация
Рисунки SVG могут быть динамическими и интерактивными. Изменения элементов, зависящие от времени, могут быть описаны в SMIL или могут быть запрограммированы на языке сценариев (например, JavaScript ). W3C явно рекомендует SMIL в качестве стандарта для анимации в SVG. [24]
В связи с требованиями отрасли в SVG 1.1 были представлены два мобильных профиля: SVG Tiny (SVGT) и SVG Basic (SVGB).
Это подмножества полного стандарта SVG, в основном предназначенные для пользовательских агентов с ограниченными возможностями. В частности, SVG Tiny был определен для мобильных устройств с высокими ограничениями, таких как мобильные телефоны ; он не поддерживает стилизацию или скрипты. [25] SVG Basic был определен для мобильных устройств более высокого уровня, таких как смартфоны .
В 2003 году 3GPP , международная группа по стандартам в области телекоммуникаций, приняла SVG Tiny в качестве обязательного формата векторной графики для телефонов следующего поколения. SVGT является обязательным форматом векторной графики, а поддержка SVGB является необязательной для службы мультимедийных сообщений (MMS) и службы потоковой передачи с коммутацией пакетов. [26] [27] [28] Позднее [ когда? ] он был добавлен в качестве обязательного формата для векторной графики в подсистеме мультимедиа IP 3GPP (IMS). [29] [30]
Ни один из мобильных профилей не включает поддержку полной модели объектов документа (DOM), в то время как только SVG Basic имеет дополнительную поддержку сценариев, но поскольку они являются полностью совместимыми подмножествами полного стандарта, большинство графики SVG по-прежнему могут отображаться на устройствах, которые поддерживают только мобильные профили. [31]
SVGT 1.2 добавляет microDOM (μDOM), стили и скрипты. [25] SVGT 1.2 также включает некоторые функции, отсутствующие в SVG 1.1, включая немасштабируемые штрихи, которые поддерживаются некоторыми реализациями SVG 1.1, такими как Opera, Firefox и WebKit. По мере увеличения общих кодовых баз между настольными и мобильными браузерами, использование SVG 1.1 по сравнению с SVGT 1.2 также возросло.
Сжатие
Изображения SVG, будучи XML, содержат много повторяющихся фрагментов текста, поэтому они хорошо подходят для алгоритмов сжатия данных без потерь . Когда изображение SVG сжато с помощью алгоритма gzip , оно называется изображением «SVGZ» и использует соответствующее .svgzрасширение имени файла. Соответствующие средства просмотра SVG 1.1 будут отображать сжатые изображения. [32] Файл SVGZ обычно имеет размер от 20 до 50 процентов от исходного. [33] W3C предоставляет файлы SVGZ для проверки на соответствие. [34]
Дизайн
Спецификация SVG 1.1 определяет 14 функциональных областей или наборов функций: [11]
Пути
Простые или сложные контуры фигур рисуются с помощью кривых или прямых линий, которые можно заполнить, очертить или использовать в качестве контура обрезки . Контуры имеют компактное кодирование.
Например, M(для "переместить в") предшествует начальным числовым координатам x и y , а (для "линия в") предшествует точке, к которой должна быть проведена линия. Дальнейшие командные буквы ( , , , , и ) предшествуют данным, которые используются для рисования различных кривых Безье и эллиптических кривых. используется для замыкания пути.LCSQTAZ
Во всех случаях абсолютные координаты следуют за командами, начинающимися с заглавных букв, а относительные координаты используются после эквивалентных им строчных букв. [35]
Базовые формы
Можно рисовать прямолинейные пути и пути, состоящие из ряда соединенных прямолинейных сегментов (полилиний), а также замкнутые многоугольники, круги и эллипсы. Прямоугольники и прямоугольники с закругленными углами также являются стандартными элементами. [36]
Текст
Текст символов Unicode, включенный в файл SVG, выражается как данные символов XML . Возможны многие визуальные эффекты, и спецификация SVG автоматически обрабатывает двунаправленный текст (например, для составления комбинации английского и арабского текста), вертикальный текст (как может быть написано на китайском или японском языке) и символы вдоль изогнутой траектории (например, текст по краю Большой печати Соединенных Штатов ). [37]
Рисование
Фигуры SVG могут быть заполнены и обведены (окрашены цветом, градиентом или узором). Заливки могут быть непрозрачными или иметь любую степень прозрачности.
«Маркеры» — это конечные элементы линий, такие как наконечники стрелок или символы, которые могут появляться в вершинах многоугольника. [38]
Цвет
Цвета могут быть применены ко всем видимым элементам SVG, либо напрямую, либо через fill, stroke, и другие свойства. Цвета указываются так же, как в CSS2 , то есть с использованием имен, таких как blackили blue, в шестнадцатеричном виде , например #2f0или #22ff00, в десятичном виде, например rgb(255,255,127), или в виде процентов в форме rgb(100%,100%,50%). [39]
Градиенты и узоры
SVG-фигуры могут быть заполнены или очерчены сплошными цветами, как указано выше, или цветовыми градиентами или повторяющимися узорами. Цветовые градиенты могут быть линейными или радиальными (круговыми) и могут включать любое количество цветов, а также повторений. Также могут быть указаны градиенты непрозрачности. Узоры основаны на предопределенных растровых или векторных графических объектах, которые могут повторяться в направлениях xи yнаправлениях. Градиенты и узоры могут быть анимированы и заскриптованы. [40]
С 2008 года среди профессиональных пользователей SVG ведутся обсуждения [41] [42] о том, что в спецификацию SVG можно было бы с пользой добавить либо градиентные сетки, либо, что предпочтительнее, диффузионные кривые . Говорят, что «простое представление [использующее диффузионные кривые] способно отображать даже очень тонкие эффекты затенения» [43] и что «изображения диффузионных кривых сопоставимы по качеству и эффективности кодирования с градиентными сетками, но их проще создавать (по словам нескольких художников, которые использовали оба инструмента), и их можно полностью автоматически захватывать из растровых изображений». [44] Текущий проект SVG 2 включает градиентные сетки. [45]
Обрезка, маскирование и композиция
Графические элементы, включая текст, пути, основные формы и их комбинации, могут использоваться в качестве контуров для определения как внутренних , так и внешних областей, которые могут быть окрашены (цветами, градиентами и узорами) независимо. Полностью непрозрачные обтравочные контуры и полупрозрачные маски компонуются вместе для расчета цвета и непрозрачности каждого пикселя конечного изображения с использованием альфа- смешивания. [46]
Эффекты фильтра [47]
Эффект фильтра состоит из серии графических операций, которые применяются к заданной исходной векторной графике для получения измененного растрового результата.
Интерактивность
Изображения SVG могут взаимодействовать с пользователями многими способами. В дополнение к гиперссылкам, как указано ниже, любая часть изображения SVG может быть сделана восприимчивой к событиям пользовательского интерфейса, таким как изменение фокуса , щелчки мыши, прокрутка или масштабирование изображения и другие события указателя, клавиатуры и документа. Обработчики событий могут запускать, останавливать или изменять анимацию, а также запускать скрипты в ответ на такие события. [48]
Связывание
Изображения SVG могут содержать гиперссылки на другие документы с помощью XLink . Благодаря использованию идентификатора<view> элемента или фрагмента URL-адреса могут ссылаться на файлы SVG, которые изменяют видимую область документа. Это позволяет создавать определенные состояния просмотра, которые используются для увеличения/уменьшения масштаба определенной области или для ограничения просмотра определенным элементом. Это полезно при создании спрайтов . Поддержка XLink в сочетании с элементом также позволяет ссылаться на внутренние и внешние элементы и повторно использовать их. Это позволяет кодерам делать больше с меньшим количеством разметки и делает код более чистым. [49]<use>
Скриптинг
Все аспекты документа SVG могут быть доступны и обработаны с помощью скриптов аналогично HTML. Языком скриптов по умолчанию является JavaScript , и для каждого элемента и атрибута SVG определены объекты Document Object Model (DOM). Скрипты заключены в <script>элементы. Они могут запускаться в ответ на события указателя, события клавиатуры и события документа по мере необходимости. [50]
Анимация
Содержимое SVG может быть анимировано с использованием встроенных элементов анимации, таких как <animate>, <animateMotion>и <animateColor>. Содержимое может быть анимировано путем манипулирования DOM с помощью ECMAScript и встроенных таймеров языка сценариев. Анимация SVG была разработана для совместимости с текущими и будущими версиями языка синхронизированной интеграции мультимедиа (SMIL). Анимации могут быть непрерывными, они могут циклически повторяться и реагировать на пользовательские события, как упоминалось выше. [51]
Шрифты
Как и в случае с HTML и CSS, текст в SVG может ссылаться на внешние файлы шрифтов, такие как системные шрифты. Если требуемые файлы шрифтов отсутствуют на машине, где визуализируется файл SVG, текст может отображаться не так, как предполагалось. Чтобы преодолеть это ограничение, текст может быть отображен шрифтом SVG , где требуемые глифы определяются в SVG как шрифт, на который затем ссылается элемент <text>. [52]
Метаданные
В соответствии с инициативой W3C Semantic Web , SVG позволяет авторам предоставлять метаданные о содержимом SVG. Основным средством является <metadata>элемент , где документ может быть описан с использованием свойств метаданных Dublin Core (например, название, создатель/автор, тема, описание и т. д.). Также могут использоваться другие схемы метаданных. Кроме того, SVG определяет <title>и <desc>элементы, где авторы также могут предоставлять описательный материал в виде простого текста в изображении SVG для помощи в индексировании, поиске и извлечении несколькими способами. [53]
Документ SVG может определять компоненты, включая формы, градиенты и т. д., и использовать их многократно. Изображения SVG также могут содержать растровую графику , такую как изображения PNG и JPEG , а также другие изображения SVG.
Этот код создаст цветные фигуры, показанные на изображении, за исключением сетки и надписей:
Использование SVG в Интернете было ограничено отсутствием поддержки в старых версиях Internet Explorer (IE). Многие веб-сайты, которые обслуживают изображения SVG, также предоставляют изображения в растровом формате , либо автоматически с помощью согласования содержимого HTTP , либо позволяя пользователю напрямую выбирать файл.
Веб-браузеры
Konqueror был первым браузером, поддержавшим SVG в версии 3.2 в феврале 2004 года. [54] По состоянию на 2011 год все основные настольные браузеры и многие второстепенные имеют некоторый уровень поддержки SVG. Реализации других браузеров еще не завершены; см. сравнение движков макета для получения более подробной информации.
Некоторые более ранние версии Firefox (например, версии между 1.5 и 3.6 [55] ), а также несколько других, теперь устаревших, веб-браузеров, способных отображать графику SVG, нуждались во встроенных элементах <object>или <iframe>элементах для отображения их как частей веб-страницы HTML вместо использования стандартного способа интеграции изображений с <img>. [56] Однако изображения SVG могут быть включены в страницы XHTML с использованием пространств имен XML . [57]
Тим Бернерс-Ли , создатель Всемирной паутины , критиковал ранние версии Internet Explorer за их неспособность поддерживать SVG. [58]
Opera (начиная с версии 8.0) поддерживает спецификацию SVG 1.1 Tiny, а Opera 9 включает поддержку SVG 1.1 Basic и часть SVG 1.1 Full. Opera 9.5 частично поддерживает SVG Tiny 1.2. Она также поддерживает SVGZ (сжатый SVG).
Браузеры, основанные на движке компоновки Gecko (такие как Firefox , Flock , Camino и SeaMonkey ), не полностью поддерживают спецификацию SVG 1.1 Full с 2005 года. На сайте Mozilla есть обзор модулей, которые поддерживаются в Firefox [59] , и модулей, которые находятся в разработке. [60] Gecko 1.9, включенный в Firefox 3.0 , добавляет поддержку большего количества спецификаций SVG (включая фильтры). [61]
Pale Moon , использующий движок компоновки Goanna (ответвление движка Gecko ), поддерживает SVG.
Internet Explorer 8 и более ранние версии не поддерживают SVG. [63] [64] IE9 (выпущен 14 марта 2011 г.) поддерживает базовый набор функций SVG. [65] IE10 расширил поддержку SVG, добавив фильтры SVG 1.1. [66]
Есть несколько преимуществ собственной и полной поддержки: плагины не нужны, SVG можно свободно смешивать с другим контентом в одном документе, а рендеринг и скриптинг становятся значительно более надежными. [68]
Мобильные устройства
Поддержка SVG может быть ограничена SVGT на старых или более ограниченных смартфонах или может быть в первую очередь ограничена их соответствующей операционной системой. Adobe Flash Lite опционально поддерживает SVG Tiny с версии 1.1. На конференции SVG Open 2005 компания Sun продемонстрировала мобильную реализацию SVG Tiny 1.1 для платформы Connected Limited Device Configuration (CLDC). [69]
Мобильные телефоны, использующие Opera Mobile , а также встроенный браузер iPhone , также включают поддержку SVG. Однако, несмотря на то, что он использовал движок WebKit , встроенный браузер Android не поддерживал SVG до версии 3.0 (Honeycomb). [70] До версии 3.0 Firefox Mobile 4.0b2 (beta) для Android был первым браузером, работающим под управлением Android, который поддерживал SVG по умолчанию. [71]
Уровень поддержки SVG Tiny варьируется от мобильного устройства к мобильному в зависимости от установленного движка SVG. Многие новые мобильные продукты поддерживают дополнительные функции, выходящие за рамки SVG Tiny 1.1, такие как градиент и непрозрачность; иногда это называют «SVGT 1.1+», хотя такого стандарта нет.
BlackBerry от RIM имеет встроенную поддержку SVG Tiny 1.1, начиная с версии 5.0. [72] Поддержка продолжается для браузера BlackBerry Torch на базе WebKit в OS 6 и 7. [73]
Платформа Nokia S60 имеет встроенную поддержку SVG. Например, иконки обычно визуализируются с помощью движка платформы SVG. Nokia также возглавила экспертную группу JSR 226: Scalable 2D Vector Graphics API , которая определяет Java ME API для представления и обработки SVG. Этот API был реализован в S60 Platform 3rd Edition Feature Pack 1 и далее. [74] Некоторые телефоны Series 40 также поддерживают SVG (например, Nokia 6280 ). [ требуется цитата ]
Большинство телефонов Sony Ericsson , начиная с K700 (по дате выпуска), поддерживают SVG Tiny 1.1. Телефоны, начиная с K750, также поддерживают такие функции, как непрозрачность и градиенты. Телефоны с Sony Ericsson Java Platform-8 поддерживают JSR 226. [ необходима цитата ]
Windows Phone поддерживает SVG начиная с версии 7.5.
SVG также поддерживается на различных мобильных устройствах от Motorola , Samsung , LG и Siemens mobile / BenQ-Siemens . eSVG, библиотека рендеринга SVG, написанная в основном для встраиваемых устройств, доступна на некоторых мобильных платформах. [75] [76]
Авторинг
Изображения SVG могут быть закодированы вручную или созданы с помощью векторного графического редактора, такого как Inkscape , Adobe Illustrator , Adobe Flash Professional или CorelDRAW , и преобразованы в распространённые форматы растровых изображений, такие как PNG, с использованием того же программного обеспечения. Кроме того, редакторы, такие как Inkscape и Boxy SVG, предоставляют инструменты для трассировки растровых изображений до кривых Безье , обычно с использованием бэкэндов трассировки изображений , таких как potrace , [77] autotrace и imagetracerjs.
Программное обеспечение может быть запрограммировано для рендеринга изображений SVG с использованием библиотеки, такой как librsvg, используемой GNOME с 2000 года, Batik и ThorVG (Thor Vector Graphics) с 2020 года для облегченных систем. Изображения SVG также могут быть рендерированы в любой желаемый популярный формат изображения с помощью ImageMagick , бесплатной утилиты командной строки (которая также использует librsvg под капотом).
Для веб-приложений режим использования, называемый Inline SVG, позволяет встраивать содержимое SVG в HTML-документ с помощью <svg>тега. Его графические возможности затем можно использовать для создания сложных пользовательских интерфейсов, поскольку SVG и HTML совместно используют контекст, обработку событий и CSS.
Как формат документа, аналогичный документам HTML, SVG может размещать скрипты или CSS. Это проблема, когда злоумышленник может загрузить файл SVG на веб-сайт, например, изображение профиля, и файл рассматривается как обычное изображение, но содержит вредоносный контент. [79] Например, если файл SVG развернут как фоновое изображение CSS или логотип на каком-либо веб-сайте или в какой-либо галерее изображений, то при загрузке изображения в браузере он активирует скрипт или другой контент. Это может заблокировать браузер ( атака Billion laughs ), но также может привести к инъекции HTML и атакам межсайтового скриптинга . Поэтому W3C устанавливает определенные требования, когда SVG просто используется для изображений: безопасность SVG. [80]
W3C утверждает, что встроенный SVG (файл SVG, изначально загруженный на веб-сайт) считается менее рискованным для безопасности, поскольку его содержимое является частью более крупного документа, и поэтому скрипты и CSS не будут неожиданными. [80]
Связанная работа
Стандарт MPEG-4 Part 20 — Lightweight Application Scene Representation (LASeR) и Simple Aggregation Format (SAF) — основан на SVG Tiny. [81] Он был разработан MPEG ( ISO/IEC JTC 1 /SC29/WG11) и опубликован как ISO/IEC 14496-20:2006. [82] Возможности SVG улучшены в MPEG-4 Part 20 ключевыми функциями для мобильных сервисов, такими как динамические обновления, двоичное кодирование, современное представление шрифтов. [83] SVG также был включен в MPEG-4 Part 11 в формате Extensible MPEG-4 Textual (XMT) — текстовом представлении мультимедийного контента MPEG-4 с использованием XML . [84]
^ "Регистрация типа носителя для image/svg+xml". W3C . Архивировано из оригинала 19 февраля 2014 г. Получено 5 февраля 2014 г.
^ St. Laurent, Simon; Makoto, Murata; Kohn, Dan (январь 2001 г.). "XML Media Types". IETF Datatracker . doi : 10.17487/RFC3023 . Архивировано из оригинала 24 августа 2011 г. . Получено 5 февраля 2014 г. .
^ abc "Secret Origin of SVG". World Wide Web Consortium . 21 декабря 2007 г. Архивировано из оригинала 24 декабря 2020 г. Получено 1 января 2011 г.
^ "Schematic Graphics". W3C . Архивировано из оригинала 31 января 2022 . Получено 19 июля 2019 .
^ Аль-Шамма, Набиль; Роберт Айерс; Ричард Кон; Джон Феррайоло; Мартин Ньюэлл; Роджер К. де Брай; Кевин МакКласки; Джерри Эванс (10 апреля 1998 г.). "Precision Graphics Markup Language (PGML)". W3C . Архивировано из оригинала 16 декабря 2021 г. Получено 8 мая 2009 г.
^ Мэтьюз, Брайан; Брайан Дистер; Джон Боулер; Говард Куперштейн; Аджай Джиндал; Туан Нгуен; Питер Ву; Трой Сэндал (13 мая 1998 г.). "Vector Markup Language (VML)". W3C . Архивировано из оригинала 6 ноября 2021 г. Получено 8 мая 2009 г.
^ "Hyper Graphics Markup Language (HGML)". W3C . Архивировано из оригинала 7 апреля 2022 г. . Получено 19 июля 2019 г. .
^ "WebCGM Profile". xml.coverpages.org . Архивировано из оригинала 14 августа 2022 г. Получено 4 марта 2019 г.
^ "Scalable Vector Graphics (SVG) 2". W3C. Архивировано из оригинала 27 января 2017 г. Получено 28 января 2017 г.
^ Феррайоло, Джон (4 сентября 2001 г.). «Спецификация масштабируемой векторной графики (SVG) 1.0». Консорциум Всемирной паутины. Архивировано из оригинала 11 мая 2008 г. Получено 24 февраля 2010 г.
^ ab Ferraiolo, Jon (16 августа 2011 г.). "Scalable Vector Graphics (SVG) 1.1 Specification". World Wide Web Consortium. Архивировано из оригинала 16 сентября 2012 г. Получено 14 апреля 2016 г.
^ Capin, Tolga (15 июня 2009 г.). «Профили SVG для мобильных устройств: SVG Tiny и SVG Basic». World Wide Web Consortium. Архивировано из оригинала 9 октября 2010 г. Получено 24 октября 2010 г.
^ Андерссон, Ола (22 декабря 2008 г.). «Scalable Vector Graphics (SVG) Tiny 1.2 Specification». World Wide Web Consortium. Архивировано из оригинала 7 декабря 2020 г. Получено 24 февраля 2010 г.
^ Денглер, Патрик (8 июля 2010 г.). «Переход на SVG 2.0: отчет рабочей группы SVG Face-to-Face (24 мая – 1 июня 2010 г.)». Microsoft Developer Network . Microsoft . Архивировано из оригинала 12 мая 2016 г. . Получено 26 августа 2010 г. .
^ ab "Scalable Vector Graphics (SVG) 1.1 (Second Edition)". W3C. Архивировано из оригинала 24 сентября 2011 г. Получено 29 августа 2011 г.
^ Бротман, Алекс; Адамс, Дж. Трент. «SVG Tiny Portable/Secure». Ietf Datatracker . Архивировано из оригинала 14 февраля 2021 г. Получено 9 февраля 2021 г.
^ "Руководство по внедрению". BIMI Group . Архивировано из оригинала 28 февраля 2021 г. Получено 9 февраля 2021 г.
^ ab "Приложение K: Изменения по сравнению с SVG 1.1". World Wide Web Consortium. 26 мая 2020 г. Архивировано из оригинала 4 февраля 2021 г. Получено 31 декабря 2020 г.
^ "Глава 11: Текст". World Wide Web Consortium. 26 мая 2020 г. Архивировано из оригинала 21 апреля 2021 г. Получено 31 декабря 2020 г.
^ "Scalable Vector Graphics (SVG) 2". World Wide Web Consortium. 15 сентября 2016 г. Архивировано из оригинала 9 сентября 2021 г. Получено 17 августа 2021 г.
^ "Scalable Vector Graphics (SVG) 2". World Wide Web Consortium. 4 октября 2018 г. Архивировано из оригинала 19 июля 2021 г. Получено 17 августа 2021 г.
^ "Scalable Vector Graphics (SVG) 2". World Wide Web Consortium. 8 марта 2023 г. Архивировано из оригинала 10 февраля 2021 г. Получено 7 января 2024 г.
^ Алекс, Данило; Фудзисава, Джун (2002). «SVG как язык описания страниц». svgopen.org. Архивировано из оригинала 29 мая 2010 г. Получено 24 февраля 2010 г.
^ Пол, Феста (9 января 2003 г.). "W3C выпускает стандарт сценариев, предостережение". CNet . Архивировано из оригинала 17 мая 2011 г. Получено 24 февраля 2010 г.
^ ab "SVG Tiny 1.2". Спецификация масштабируемой векторной графики (SVG) Tiny 1.2 . W3C . 22 декабря 2008 г. Архивировано из оригинала 30 января 2014 г. Получено 5 марта 2014 г.
^ "SVG в 3GPP Multimedia Messaging and Streaming Services (версия от марта 2003 г.)". SVG Open. 2003. Архивировано из оригинала 26 июня 2009 г. Получено 19 октября 2009 г.
^ "3GPP Multimedia Messaging Service (MMS); Media formats and codecs (Release 5); 3GPP TS 26.140 V5.2.0 (2002-12); Technical Specification" ( сжатый документ) . 3GPP . 2 января 2003 г. Архивировано из оригинала 8 февраля 2007 г. Получено 25 февраля 2010 г.
^ "Проект партнерства третьего поколения; Технические характеристики групповых служб и системных аспектов; Служба обмена мультимедийными сообщениями (MMS); Форматы и кодеки мультимедиа (выпуск 5)" ( сжатый документ) . 3GPP TS 26.140 V5.2.0 (2002-12) . 3GPP . Март 2003 г. Архивировано из оригинала 12 февраля 2007 г. Получено 24 февраля 2010 г.
^ "3GPP Спецификация подробно - 3GPP TS 26.141: IP Multimedia System (IMS) Сообщения и присутствие; Форматы и кодеки мультимедиа". 3GPP . 10 декабря 2009 г. Архивировано из оригинала 7 октября 2008 г. Получено 24 февраля 2010 г.
^ "Создание интерактивных веб-сайтов с использованием масштабируемой векторной графики (SVG) – [с примерами]". intelegain.com. Архивировано из оригинала 29 ноября 2018 г. Получено 21 ноября 2018 г.{{cite web}}: CS1 maint: бот: исходный статус URL неизвестен ( ссылка )
^ "Список телефонов, поддерживающих SVG". Svg.org. Архивировано из оригинала 8 января 2010 года . Получено 24 октября 2010 года .
^ См . www.w3.org/TR/SVG11/conform.html#ConformingSVGViewers , где говорится: «Реализации SVG должны правильно поддерживать потоки данных, закодированные с помощью gzip [RFC1952] и deflate [RFC1951], для любого типа контента (включая SVG, файлы скриптов, изображения)».
^ "Сохранение сжатого SVG (SVGZ)". SVG Zone . Adobe Systems . 14 июля 2009 г. Архивировано из оригинала 1 июня 2010 г. Получено 24 февраля 2010 г.
^ Например, dev.w3.org/SVG/profiles/1.1F2/test/harness/htmlObject/conform-viewers-01-t.html
^ "SVG specification, "Paths"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 21 июня 2012 г. Получено 19 октября 2009 г.
^ "Спецификация SVG, "Базовые фигуры"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 2 октября 2009 г. Получено 19 октября 2009 г.
^ "SVG specification, "Text"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 6 октября 2009 г. Получено 19 октября 2009 г.
^ "Спецификация SVG, "Окраска: заливка, обводка и символы маркера"". Консорциум World Wide Web. 14 января 2003 г. Архивировано из оригинала 17 сентября 2009 г. Получено 19 октября 2009 г.
^ "SVG specification, "Color"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 7 сентября 2009 г. Получено 19 октября 2009 г.
^ "Спецификация SVG, "Градиенты и узоры"". Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 21 сентября 2009 г. Получено 19 октября 2009 г.
^ "IRC log of svg on 2008-11-17". W3C. 2008. Архивировано из оригинала 10 октября 2016 г. Получено 25 мая 2009 г. DS: Приоритетами должны быть макет, кривые диффузии, 2.5D и убедиться, что мы хорошо работаем с CSS в этом
^ "Предложения по следующей спецификации SVG". W3C. 16 марта 2009 г. Архивировано из оригинала 14 мая 2011 г. Получено 25 мая 2009 г. Действительно , мы планируем добавить новые возможности градиента в SVG в следующей версии, и мы изучаем кривые диффузии, которые, я думаю, удовлетворят ваши потребности... *Кривые диффузии* кажутся действительно отличной идеей.
^ Rusin, Zack (2008). "SVG в KDE: Freedom of Beauty". SVG Open. Архивировано из оригинала 22 июля 2009 года . Получено 25 мая 2009 года .
^ Orzan, Alexandrina; Bousseau, Adrien; Winnemöller, Holger; Barla, Pascal; Thollot, Joëlle; Salesin, David (2008). "Diffusion Curves: A Vector Representation for Smooth-Shaded Images" (PDF) . ACM Transactions on Graphics . 27 . doi :10.1145/1360612.1360691. Архивировано (PDF) из оригинала 18 июня 2009 г. . Получено 25 мая 2009 г. .
^ "Scalable Vector Graphics (SVG) 2, W3C Editor's Draft 13 июня 2013 г.". SVG WG. 2013. Архивировано из оригинала 4 декабря 2013 г. Получено 17 сентября 2013 г.
^ "Спецификация SVG, "Обрезка, маскирование и композиция"". Консорциум World Wide Web. 14 января 2003 г. Архивировано из оригинала 1 декабря 2009 г. Получено 19 октября 2009 г.
^ "SVG specification, "Filter Effects"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 28 августа 2006 г. Получено 19 октября 2009 г.
^ "SVG specification, "Interactivity"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 5 июля 2019 г. Получено 19 октября 2009 г.
^ "SVG specification, "Linking"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 25 июня 2019 г. Получено 19 октября 2009 г.
^ "SVG specification, "Scripting"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 1 октября 2009 г. Получено 19 октября 2009 г.
^ "SVG specification, "Animation"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 27 августа 2006 г. Получено 19 октября 2009 г.
^ "SVG specification, "Fonts"". World Wide Web Consortium. 14 января 2003 г. Архивировано из оригинала 26 сентября 2009 г. Получено 19 октября 2009 г.
^ "Спецификация SVG, "Метаданные"". Консорциум Всемирной паутины. Архивировано из оригинала 3 мая 2009 года . Получено 19 октября 2009 года .
^ Штрайхардт, Андреас (16 сентября 2003 г.). «KDE побеждает векторы с помощью KSVG». Новости KDE . Архивировано из оригинала 30 июня 2023 г. Получено 11 февраля 2012 г.
^ "Ошибка 276431 - внешний SVG не загружен из тега img". Mozilla. Архивировано из оригинала 24 октября 2012 г. Получено 9 ноября 2011 г.[ целостность текста–источника? ]
^ Lusotec (25 февраля 2009 г.). «Изображение SVG не отображается Firefox». mozilla.dev.tech.svg . Группы Google . Архивировано из оригинала 14 мая 2011 г. . Получено 25 февраля 2010 г. .
^ Brettz9 (25 августа 2008 г.). "SVG In HTML Introduction". Mozilla Developer Center . Mozilla . Архивировано из оригинала 5 декабря 2008 г. Получено 25 февраля 2010 г.{{cite web}}: CS1 maint: числовые имена: список авторов ( ссылка )
^ Свенссон, Питер (10 сентября 2008 г.). «Создатель Веба обнаружил ошибку в Internet Explorer». NBC News . Associated Press. Архивировано из оригинала 9 ноября 2013 г. Получено 25 февраля 2010 г.
^ "SVG в Firefox". Mozilla Developer Center . Mozilla . 23 октября 2009 г. Архивировано из оригинала 23 июня 2008 г. Получено 25 февраля 2010 г.
^ "Mozilla SVG Status". Mozilla . Архивировано из оригинала 5 марта 2010 года . Получено 25 февраля 2010 года .
^ Mgjbot (15 января 2008 г.). "Улучшения SVG в Firefox 3". Mozilla Developer Center . Mozilla . Архивировано из оригинала 9 февраля 2014 г. . Получено 25 февраля 2010 г. .
^ "WebKit SVG Status". WebKit . 5 января 2010 г. Архивировано из оригинала 10 февраля 2010 г. Получено 25 февраля 2010 г.
^ "Windows Internet Explorer 8 Expert Zone Chat (19 июня 2008 г.)". Microsoft. 19 июня 2008 г. Архивировано из оригинала 17 марта 2010 г. Получено 24 октября 2010 г.
^ Шиллер, Джефф (13 февраля 2010 г.). "Поддержка SVG". Архивировано из оригинала 16 февраля 2009 г. Получено 25 февраля 2010 г.
^ "Что нового в Internet Explorer 9". Microsoft Developer Network . Microsoft . 22 марта 2011 г. Архивировано из оригинала 5 апреля 2011 г. Получено 22 марта 2011 г.
^ "SVG (Windows)". Internet Explorer Dev Center . Microsoft . Архивировано из оригинала 20 марта 2014 . Получено 27 августа 2014 .
^ "Состояние и дорожная карта функций веб-платформы Microsoft Edge - Разработка Microsoft Edge". developer.microsoft.com . Архивировано из оригинала 15 апреля 2018 г. . Получено 19 апреля 2018 г. .
^ «Приготовьтесь к просмотру без плагинов». MSDN . 2014. Архивировано из оригинала 31 декабря 2014 г. Получено 5 марта 2014 г.
^ "Конференция и выставка SVG Open 2005 - Труды - Интерфейсы пользователя, ориентированные на мультфильмы". svgopen.org. Архивировано из оригинала 3 декабря 2010 г. Получено 29 августа 2010 г.
^ "Браузер не отображает изображения SVG". Архивировано из оригинала 20 мая 2011 г. Получено 1 января 2011 г.
^ "Firefox Mobile 4.0b2 (beta) для Android поддерживает изображения SVG". Android Issue 1376. 16 декабря 2010 г. Архивировано из оригинала 21 августа 2014 г. Получено 29 января 2014 г.
^ "Поддержка SVG". RIM. Архивировано из оригинала 10 октября 2011 г. Получено 6 октября 2011 г.
^ "BlackBerry Torch The HTML5 Developer Scorecard". Sencha . Архивировано из оригинала 5 марта 2014 года . Получено 6 октября 2011 года .
^ "S60 Product info". S60.com. Архивировано из оригинала 13 октября 2007 г. Получено 19 октября 2009 г.
^ Jezic, Damir (15–17 июля 2002 г.). «SVG для встраиваемых систем». Цюрих 2002 г. . svgopen.org. Архивировано из оригинала 16 марта 2012 г. . Получено 5 апреля 2012 г. .
^ "eSVG". Intesis Intelligent Embedded Software . 2010. Архивировано из оригинала 3 марта 2012 года . Получено 29 января 2014 года .
^ Селинджер, Питер (2001–2013). «Potrace – Преобразование растровых изображений в векторную графику». Проект Potrace на SourceForge . Архивировано из оригинала 9 сентября 2009 года . Получено 29 января 2014 года .
^ «Что нового в PowerPoint для Microsoft 365». support.microsoft.com . Сентябрь 2019 г. Архивировано из оригинала 13 марта 2021 г. Получено 17 апреля 2021 г.
^ Нгуен, Тхань Нгуен (7 ноября 2019 г.). «Анатомия поверхности атаки масштабируемой векторной графики (SVG) в Интернете». Блог Fortinet . Архивировано из оригинала 21 февраля 2023 г. Получено 21 февраля 2023 г.
^ ab "SVG Security - W3C Wiki". W3C . Архивировано из оригинала 21 февраля 2023 г. Получено 21 февраля 2023 г.
^ Concolato, Cyril (июль 2005 г.). "MPEG-4 LASeR white paper". Международная организация по стандартизации . Архивировано из оригинала 25 июля 2011 г. Получено 29 августа 2010 г.
^ "ISO/IEC 14496-20:2008 - Информационные технологии - Кодирование аудиовизуальных объектов - Часть 20: Облегченное представление сцены приложения (LASeR) и простой формат агрегации (SAF)". Международная организация по стандартизации . Архивировано из оригинала 14 мая 2011 г. Получено 30 октября 2009 г.
^ "LASeR - стандарт MPEG для Rich Media Services" (PDF) . Архивировано (PDF) из оригинала 21 февраля 2011 г. . Получено 11 апреля 2010 г. .
^ Chiariglione, Leonardo (8 марта 2005 г.). "Riding the media bits - Bits and bytes". Архивировано из оригинала 25 сентября 2010 г. Получено 30 октября 2009 г.