SVG
Расширения имен файлов | .svg , .svgz |
---|---|
Тип интернет-СМИ | image/svg+xml [1] [2] |
Единый идентификатор типа (UTI) | public.svg-image |
Разработано | W3C |
Первоначальный выпуск | 4 сентября 2001 г. |
Последний выпуск | 1.1 (второе издание) 16 августа 2011 г |
Тип формата | Векторная графика |
Расширено с | XML |
Стандартный | W3C SVG |
Открытый формат ? | Да |
Веб-сайт | www |
Масштабируемая векторная графика ( SVG ) — это XML на основе формат векторных изображений для определения двумерной графики с поддержкой интерактивности и анимации. Спецификация SVG — это открытый стандарт, разработанный Консорциумом World Wide Web с 1999 года.
Изображения SVG определяются в формате векторной графики и сохраняются в текстовых файлах XML. Таким образом, изображения SVG можно масштабировать по размеру без потери качества, а файлы SVG можно искать , индексировать , создавать сценарии и сжимать . Текстовые файлы XML можно создавать и редактировать с помощью текстовых редакторов или редакторов векторной графики , и они отображаются большинством веб-браузеров .
Раннее внедрение было ограничено из-за отсутствия поддержки в старых версиях Internet Explorer. Однако с 2011 года все основные настольные браузеры начали поддерживать SVG. Встроенная поддержка браузера предлагает различные преимущества, такие как отсутствие необходимости в плагинах, возможность смешивания SVG с другим контентом, а также повышение надежности рендеринга и сценариев. Поддержка SVG на мобильных устройствах существует в различных формах: разные устройства и браузеры поддерживают SVG Tiny 1.1 или 1.2. SVG можно создавать с помощью редакторов векторной графики и преобразовывать в растровые форматы. В веб-приложениях Inline SVG позволяет встраивать содержимое SVG в документы HTML.
Несмотря на свои преимущества, SVG может представлять угрозу безопасности при использовании для изображений, поскольку на нем могут размещаться сценарии или CSS, что потенциально может привести к атакам с использованием межсайтовых сценариев или другим уязвимостям.
История
[ редактировать ]SVG находится в разработке в Консорциуме Всемирной паутины (W3C) с 1999 года после того, как в 1998 году консорциуму было представлено шесть конкурирующих предложений по языкам векторной графики (см. ниже). [3]
Первая рабочая группа SVG решила не разрабатывать какие-либо коммерческие предложения, а создать новый язык разметки , основанный на них, но не основанный на них. [3]
SVG был разработан рабочей группой W3C SVG , начиная с 1998 года, после того как в том же году было получено шесть конкурирующих заявок на векторную графику:
- Веб-схемы от CCLRC [4]
- PGML от Adobe Systems , IBM , Netscape и Sun Microsystems. [5]
- VML от Autodesk , Hewlett-Packard , Macromedia , Microsoft и Vision. [6]
- Язык гиперграфической разметки (HGML), разработанный Orange UK и PRP. [7]
- WebCGM от Boeing , PTC , InterCAP Graphics Systems, Inso Corporation , CCLRC и Xerox. [8]
- DrawML от Excosoft AB [3]
Рабочую группу в то время возглавлял Крис Лилли из W3C.
Спецификация SVG была обновлена до версии 1.1 в 2011 году. Scalable Vector Graphics 2 стала кандидатской рекомендацией W3C 15 сентября 2016 года. SVG 2 включает в себя несколько новых функций в дополнение к функциям SVG 1.1 и SVG Tiny 1.2. [9]
Версия 1.х
[ редактировать ]- SVG 1.0 стал рекомендацией W3C 4 сентября 2001 года. [10]
- SVG 1.1 стал рекомендацией W3C 14 января 2003 года. [11] Спецификация SVG 1.1 имеет модульную структуру, позволяющую определять подмножества как профили. Помимо этого, между SVG 1.1 и SVG 1.0 очень небольшая разница.
- SVG Tiny 1.2 стал рекомендацией W3C 22 декабря 2008 года. [13] Первоначально он был разработан как профиль запланированного SVG Full 1.2 (от которого впоследствии отказались в пользу SVG 2). [14] но позже был реорганизован как отдельная спецификация. Обычно он плохо поддерживается.
- 16 августа 2011 года было выпущено второе издание SVG 1.1, содержащее все исправления и пояснения, но не добавляющее новых функций в исходную версию SVG 1.1. [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 и формата открытых веб-шрифтов : [18]
- Например, SVG 2 удаляет несколько элементов шрифта, таких как
glyph
иaltGlyph
(заменен форматом шрифта WOFF). - The
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 допускает три типа графических объектов: векторные графические фигуры (например, пути, состоящие из прямых линий и кривых), растровые изображения и текст. Графические объекты можно группировать, стилизовать, трансформировать и объединять в ранее визуализированные объекты. Набор функций включает в себя вложенные преобразования , контуры обрезки , альфа-маски , эффекты фильтров и объекты шаблонов. Рисунки SVG могут быть интерактивными и включать в себя анимацию , определенную в XML-элементах SVG или с помощью сценариев SVG , которые обращаются к объектной модели документа (DOM).
SVG использует CSS для стилизации и JavaScript для написания сценариев. Текст, включая интернационализацию и локализацию , представленный в виде обычного текста в SVG DOM, повышает доступность графики SVG. [15]
Печать
[ редактировать ]Хотя спецификация SVG в первую очередь ориентирована на язык разметки векторной графики , ее конструкция включает в себя базовые возможности языка описания страниц, такого как Adobe PDF . Он содержит возможности для богатой графики и совместим с CSS для стилизации. SVG содержит информацию, необходимую для размещения каждого глифа и изображения в выбранном месте на печатной странице. [23]
Сценарии и анимация
[ редактировать ]Рисунки SVG могут быть динамичными и интерактивными. Модификации элементов по времени могут быть описаны в SMIL или могут быть запрограммированы на языке сценариев (например, JavaScript ). W3C однозначно рекомендует SMIL в качестве стандарта анимации в SVG. [24]
Богатый набор обработчиков событий , таких как onmouseover и onclick, можно назначить любому графическому объекту SVG для применения действий и событий.
Мобильные профили
[ редактировать ]По требованию отрасли в 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 Multimedia Subsystem (IMS) 3GPP. [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 координатам , иL
(для «линии до») предшествует точке, до которой должна быть проведена линия. Дальнейшие командные буквы (C
,S
,Q
,T
, иA
) предшествуют данным, которые используются для рисования различных кривых Безье и эллиптических кривых.Z
используется для закрытия пути. - Во всех случаях абсолютные координаты следуют за заглавными буквами, а относительные координаты используются после эквивалентных строчных букв. [35]
- Основные формы
- Могут быть нарисованы прямые пути и пути, состоящие из ряда соединенных прямолинейных сегментов (полилиний), а также замкнутые многоугольники, круги и эллипсы. Прямоугольники и прямоугольники с закругленными углами также являются стандартными элементами. [36]
- Текст
- Текст символов Юникода, включенный в файл 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 года ведется обсуждение [41] [42] среди профессиональных пользователей SVG либо градиентные сетки , либо, предпочтительно, кривые диффузии было бы полезно добавить в спецификацию SVG . Говорят, что «простое представление [с использованием кривых диффузии] способно отобразить даже очень тонкие эффекты затенения». [43] и что «изображения кривых диффузии сопоставимы как по качеству, так и по эффективности кодирования с градиентными сетками, но их проще создавать (по мнению нескольких художников, использовавших оба инструмента), и их можно полностью автоматически захватывать из растровых изображений». [44] Текущий проект SVG 2 включает градиентные сетки. [45]
- Обрезка, маскирование и композитинг
- Графические элементы, включая текст, контуры, основные формы и их комбинации, можно использовать в качестве контуров для определения как внутренних , так и внешних областей, которые можно раскрашивать (с помощью цветов, градиентов и узоров) независимо. Полностью непрозрачные контуры обрезки и полупрозрачные маски объединяются вместе для расчета цвета и непрозрачности каждого пикселя конечного изображения с использованием альфа- смешивания. [46]
- Эффекты фильтра [47]
- Эффект фильтра состоит из серии графических операций, которые применяются к заданному исходному векторному изображению для получения измененного растрового результата.
- Интерактивность
- Изображения SVG могут взаимодействовать с пользователями разными способами. Помимо гиперссылок, упомянутых ниже, любую часть изображения SVG можно сделать восприимчивой к событиям пользовательского интерфейса, таким как изменение фокуса , щелчки мыши, прокрутка или масштабирование изображения, а также другие события указателя, клавиатуры и документа. Обработчики событий могут запускать, останавливать или изменять анимацию, а также запускать сценарии в ответ на такие события. [48]
- Связывание
- Изображения SVG могут содержать гиперссылки на другие документы с помощью XLink . Благодаря использованию
<view>
элемент или идентификатор фрагмента , URL-адреса могут ссылаться на файлы SVG, которые изменяют видимую область документа. Это позволяет создавать определенные состояния просмотра, которые используются для увеличения/уменьшения масштаба определенной области или для ограничения просмотра определенным элементом. Это полезно при создании спрайтов . Поддержка XLink в сочетании с<use>
element также позволяет связываться и повторно использовать внутренние и внешние элементы. Это позволяет программистам делать больше с меньшим количеством разметки и делает код более чистым. [49] - Сценарии
- Ко всем аспектам документа SVG можно получить доступ и управлять ими с помощью сценариев аналогично HTML. Языком сценариев по умолчанию является JavaScript , и для каждого элемента и атрибута SVG определены объекты объектной модели документа (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.
Этот код создаст цветные фигуры, показанные на изображении, исключая сетку и метки:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="391" height="391" viewBox="-70.5 -70.5 391 391" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect fill="#fff" stroke="#000" x="-70" y="-70" width="390" height="390"/>
<g opacity="0.8">
<rect x="25" y="25" width="200" height="200" fill="lime" stroke-width="4" stroke="pink" />
<circle cx="125" cy="125" r="75" fill="orange" />
<polyline points="50,150 50,200 200,200 200,100" stroke="red" stroke-width="4" fill="none" />
<line x1="50" y1="50" x2="200" y2="200" stroke="blue" stroke-width="4" />
</g>
</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.
- Браузеры, основанные на WebKit (такие как Apple от Safari , Google Chrome и Omni Group от OmniWeb ), имеют неполную поддержку спецификации SVG 1.1 Full с 2006 года. [62]
- Amaya имеет частичную поддержку SVG.
- Internet Explorer 8 и более ранние версии не поддерживают SVG. [63] [64] IE9 (выпущенный 14 марта 2011 г.) поддерживает базовый набор функций SVG. [65] В IE10 расширена поддержка SVG за счет добавления фильтров SVG 1.1. [66]
- Microsoft Edge Legacy поддерживает SVG 1.1. [67]
- также Облачный браузер Maxthon поддерживает SVG. [ нужна ссылка ]
У встроенной и полной поддержки есть несколько преимуществ: не нужны плагины , 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 (бета-версия) для Android был первым браузером под управлением Android, который по умолчанию поддерживал SVG. [71]
Доступный уровень поддержки SVG Tiny варьируется от мобильного устройства к мобильному, в зависимости от установленного движка SVG. Многие новые мобильные продукты поддерживают дополнительные функции, помимо SVG Tiny 1.1, такие как градиент и непрозрачность; иногда его называют «SVGT 1.1+», хотя такого стандарта не существует.
RIM от BlackBerry имеет встроенную поддержку 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 был реализован в версии Feature Pack 1 платформы S60 3-го издания и более поздних версиях. [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] автотрассировка и imagetracerjs.
Программное обеспечение можно запрограммировать для рендеринга изображений SVG с использованием такой библиотеки , как librsvg , используемая GNOME с 2000 года, Batik и Thor Vector Graphics (ThorVG) с 2020 года для облегченных систем. Изображения SVG также можно преобразовать в любой популярный формат изображений с помощью ImageMagick , бесплатной утилиты командной строки (которая также использует librsvg под капотом).
Для веб-приложений режим использования, называемый Inline SVG, позволяет встраивать содержимое SVG в документ HTML с помощью <svg>
ярлык. Его графические возможности затем можно использовать для создания сложных пользовательских интерфейсов, таких как общий контекст SVG и HTML, обработка событий и CSS.
Другие варианты использования SVG включают встраивание для использования в текстовой обработке (например, с помощью LibreOffice ) и настольных издательских системах (например, Scribus ), построение графиков (например, gnuplot ) и импорт путей (например, для использования в GIMP или Blender ). Службы приложений Microsoft 365 и Microsoft Office 2019 предлагают поддержку экспорта, [78] импорт и редактирование изображений SVG. Единый идентификатор типа для SVG, используемый Apple: public.svg-image
и соответствует public.image
и public.xml
.
Безопасность
[ редактировать ]Как формат документа, аналогичный документам HTML, SVG может содержать скрипты или CSS. Это проблема, когда злоумышленник может загрузить на веб-сайт файл SVG, например изображение профиля, и файл рассматривается как обычное изображение, но содержит вредоносный контент. [79] Например, если файл SVG развернут в качестве фонового изображения CSS или логотипа на каком-либо веб-сайте или в какой-либо галерее изображений, то при загрузке изображения в браузер он активирует сценарий или другой контент. Это может привести к блокировке браузера ( атака «Миллиард смеха» ), но также может привести к внедрению HTML и атакам с использованием межсайтовых сценариев . Поэтому W3C предъявляет определенные требования, когда SVG просто используется для изображений: Безопасность SVG. [80]
W3C утверждает, что встроенный SVG (файл SVG, изначально загружаемый на веб-сайт) считается меньшим риском для безопасности, поскольку содержимое является частью более крупного документа, поэтому использование сценариев и CSS не является неожиданностью. [80]
Связанная работа
[ редактировать ]Стандарт MPEG-4 Part 20 — упрощенное представление сцены приложения (LASeR) и простой формат агрегирования (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 , в расширяемом текстовом формате MPEG-4 (XMT) — текстовом представлении мультимедийного контента MPEG-4 с использованием XML . [84]
См. также
[ редактировать ]Масштабируемая векторная графика |
---|
|
- Элемент холста
- Сравнение форматов графических файлов
- Сравнение программного обеспечения для преобразования растрового изображения в векторное
- Сравнение редакторов векторной графики
- Компьютерная графика
- Метафайл компьютерной графики
- Формат файла изображения
- Независимость разрешения
Ссылки
[ редактировать ]- ^ «Регистрация типа носителя для изображения/svg+xml» . W3C . Архивировано из оригинала 19 февраля 2014 года . Проверено 5 февраля 2014 г.
- ^ Сен-Лоран, Симон; Макото, Мурата; Кон, Дэн (январь 2001 г.). «Типы XML-медиа» . Трекер данных IETF . дои : 10.17487/RFC3023 . Архивировано из оригинала 24 августа 2011 года . Проверено 5 февраля 2014 г.
- ^ Перейти обратно: а б с «Тайное происхождение SVG» . Консорциум Всемирной паутины . 21 декабря 2007 г. Архивировано из оригинала 24 декабря 2020 г. . Проверено 1 января 2011 г.
- ^ «Схематическая графика» . W3C . Архивировано из оригинала 31 января 2022 года . Проверено 19 июля 2019 г.
- ^ Аль-Шамма, Набиль; Роберт Эйерс; Ричард Кон; Джон Феррайоло; Мартин Ньюэлл; Роджер К. де Брай; Кевин МакКласки; Джерри Эванс (10 апреля 1998 г.). «Язык разметки точной графики (PGML)» . W3C . Архивировано из оригинала 16 декабря 2021 года . Проверено 8 мая 2009 г.
- ^ Мэтьюз, Брайан; Брайан Дистер; Джон Боулер; Говард Купер Штейн; Аджай Джиндал; Туан Нгуен; Питер Ву; Трой Сандал (13 мая 1998 г.). «Язык векторной разметки (VML)» . W3C . Архивировано из оригинала 6 ноября 2021 года . Проверено 8 мая 2009 г.
- ^ «Язык гиперграфической разметки (HGML)» . W3C . Архивировано из оригинала 7 апреля 2022 года . Проверено 19 июля 2019 г.
- ^ «Профиль WebCGM» . xml.coverpages.org . Архивировано из оригинала 14 августа 2022 года . Проверено 4 марта 2019 г.
- ^ «Масштабируемая векторная графика (SVG) 2» . W3C. Архивировано из оригинала 27 января 2017 года . Проверено 28 января 2017 г.
- ^ Феррайоло, Джон (4 сентября 2001 г.). «Спецификация масштабируемой векторной графики (SVG) 1.0» . Консорциум Всемирной паутины. Архивировано из оригинала 11 мая 2008 года . Проверено 24 февраля 2010 г.
- ^ Перейти обратно: а б Феррайоло, Джон (16 августа 2011 г.). «Масштабируемая векторная графика (SVG) 1.1. Спецификация» . Консорциум Всемирной паутины. Архивировано из оригинала 16 сентября 2012 года . Проверено 14 апреля 2016 г.
- ^ Капин, Толга (15 июня 2009 г.). «Мобильные профили SVG: SVG Tiny и SVG Basic» . Консорциум Всемирной паутины. Архивировано из оригинала 9 октября 2010 года . Проверено 24 октября 2010 г.
- ^ Андерссон, Ола (22 декабря 2008 г.). «Масштабируемая векторная графика (SVG) Tiny 1.2. Спецификация» . Консорциум Всемирной паутины. Архивировано из оригинала 7 декабря 2020 года . Проверено 24 февраля 2010 г.
- ^ Денглер, Патрик (8 июля 2010 г.). «На пути к SVG 2.0: отчет рабочей группы по SVG (24 мая – 1 июня 2010 г.)» . Сеть разработчиков Microsoft . Майкрософт . Архивировано из оригинала 12 мая 2016 года . Проверено 26 августа 2010 г.
- ^ Перейти обратно: а б «Масштабируемая векторная графика (SVG) 1.1 (второе издание)» . W3C. Архивировано из оригинала 24 сентября 2011 года . Проверено 29 августа 2011 г.
- ^ Бротман, Алекс; Адамс, Дж. Трент. «SVG Tiny Portable/Secure» . Ietf Datatracker . Архивировано из оригинала 14 февраля 2021 года . Проверено 9 февраля 2021 г.
- ^ «Руководство по внедрению» . Группа компаний «БИМИ» . Архивировано из оригинала 28 февраля 2021 года . Проверено 9 февраля 2021 г.
- ^ Перейти обратно: а б «Приложение K: Изменения по сравнению с SVG 1.1» . Консорциум Всемирной паутины. 26 мая 2020 года. Архивировано из оригинала 4 февраля 2021 года . Проверено 31 декабря 2020 г.
- ^ «Глава 11: Текст» . Консорциум Всемирной паутины. 26 мая 2020 года. Архивировано из оригинала 21 апреля 2021 года . Проверено 31 декабря 2020 г.
- ^ «Масштабируемая векторная графика (SVG) 2» . Консорциум Всемирной паутины. 15 сентября 2016 г. Архивировано из оригинала 9 сентября 2021 г. Проверено 17 августа 2021 г.
- ^ «Масштабируемая векторная графика (SVG) 2» . Консорциум Всемирной паутины. 4 октября 2018 г. Архивировано из оригинала 19 июля 2021 г. Проверено 17 августа 2021 г.
- ^ «Масштабируемая векторная графика (SVG) 2» . Консорциум Всемирной паутины. 8 марта 2023 г. Архивировано из оригинала 10 февраля 2021 г. Проверено 7 января 2024 г.
- ^ Алекс, Данило; Фудзисава, июнь (2002 г.). «SVG как язык описания страниц» . svgopen.org. Архивировано из оригинала 29 мая 2010 года . Проверено 24 февраля 2010 г.
- ^ Пол, Феста (9 января 2003 г.). «W3C выпускает стандарт сценариев, предостережение» . CNet . Архивировано из оригинала 17 мая 2011 года . Проверено 24 февраля 2010 г.
- ^ Перейти обратно: а б «SVG Tiny 1.2» . Масштабируемая векторная графика (SVG) Tiny 1.2. Спецификация . W3C . 22 декабря 2008 г. Архивировано из оригинала 30 января 2014 г. . Проверено 5 марта 2014 г.
- ^ «SVG в службах мультимедийных сообщений и потоковой передачи 3GPP (версия, март 2003 г.)» . SVG Открыть. 2003. Архивировано из оригинала 26 июня 2009 года . Проверено 19 октября 2009 г.
- ^ «Служба обмена мультимедийными сообщениями 3GPP (MMS); Медиаформаты и кодеки (Выпуск 5); 3GPP TS 26.140 V5.2.0 (2002-12); Техническая спецификация» ( архивный документ) . 3ГПП . 2 января 2003 г. Архивировано из оригинала 8 февраля 2007 г. Проверено 25 февраля 2010 г.
- ^ «Проект партнерства 3-го поколения; групповые технические спецификации и системные аспекты; служба обмена мультимедийными сообщениями (MMS); медиаформаты и кодеки (выпуск 5)» ( zip- документ) . 3ГПП ТС 26.140 В5.2.0 (2002-12) . 3ГПП . Март 2003 г. Архивировано из оригинала 12 февраля 2007 г. Проверено 24 февраля 2010 г.
- ^ «Подробности спецификации 3GPP — 3GPP TS 26.141: Обмен сообщениями и присутствие мультимедийной системы IP (IMS); Медиаформаты и кодеки» . 3ГПП . 10 декабря 2009 г. Архивировано из оригинала 7 октября 2008 г. Проверено 24 февраля 2010 г.
- ^ «Создание интерактивных веб-сайтов с использованием масштабируемой векторной графики (SVG) – [с примерами]» . intelegain.com. Архивировано из оригинала 29 ноября 2018 года . Проверено 21 ноября 2018 г.
{{cite web}}
: CS1 maint: bot: исходный статус URL неизвестен ( ссылка ) - ^ «Список телефонов, поддерживающих SVG» . Svg.org. Архивировано из оригинала 8 января 2010 года . Проверено 24 октября 2010 г.
- ^ См . www.
.w3 .org /ТР /SVG11 /соответствовать .html #ConformingSVGViewers , в котором говорится: «Реализации SVG должны правильно поддерживать потоки данных в кодировке gzip [RFC1952] и deflate-кодировке [RFC1951] для любого типа контента (включая SVG, файлы сценариев, изображения)». - ^ «Сохранение сжатого SVG (SVGZ)» . Зона SVG . Системы Adobe . 14 июля 2009 года. Архивировано из оригинала 1 июня 2010 года . Проверено 24 февраля 2010 г.
- ^ Например, разработчик
.w3 .org /SVG /профили /1 .1F2 /тест /обуздать /htmlОбъект /conform-viewers-01-t .html - ^ "Спецификация SVG, "Пути" " . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 21 июня 2012 г. Проверено 19 октября 2009 г.
- ^ «Спецификация SVG, «Базовые фигуры» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 2 октября 2009 г. Проверено 19 октября 2009 г.
- ^ "Спецификация SVG, "Текст" " . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 6 октября 2009 г. Проверено 19 октября 2009 г.
- ^ «Спецификация SVG, «Рисование: символы заливки, обводки и маркера» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 17 сентября 2009 г. Проверено 19 октября 2009 г.
- ^ "Спецификация SVG, "Цвет" " . Консорциум Всемирной паутины. 14 января 2003 года. Архивировано из оригинала 7 сентября 2009 года . Проверено 19 октября 2009 г.
- ^ «Спецификация SVG, «Градиенты и узоры» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 21 сентября 2009 г. Проверено 19 октября 2009 г.
- ^ «IRC-журнал svg за 17 ноября 2008 г.» . W3C. 2008. Архивировано из оригинала 10 октября 2016 года . Проверено 25 мая 2009 г.
Д.С.: Приоритетами должны быть макет, кривые диффузии, 2.5D, и убедитесь, что мы хорошо работаем с CSS в этом вопросе.
- ^ «Предложения по следующей спецификации SVG» . W3C. 16 марта 2009 г. Архивировано из оригинала 14 мая 2011 г. . Проверено 25 мая 2009 г.
Действительно, мы планируем добавить в SVG новые возможности градиентов в следующей версии и рассматриваем кривые диффузии, которые, я думаю, удовлетворят ваши потребности... *Кривые диффузии* кажутся действительно отличной идеей.
- ^ Русин, Зак (2008). «SVG в KDE: свобода красоты» . SVG Открыть. Архивировано из оригинала 22 июля 2009 года . Проверено 25 мая 2009 г.
- ^ Орзан, Александрина; Буссо, Адриан; Виннемеллер, Хольгер; Барла, Паскаль; Толло, Жоэль; Салезин, Дэвид (2008). «Кривые диффузии: векторное представление изображений с плавной заливкой» (PDF) . Транзакции ACM с графикой . 27 . дои : 10.1145/1360612.1360691 . Архивировано (PDF) из оригинала 18 июня 2009 г. Проверено 25 мая 2009 г.
- ^ «Масштабируемая векторная графика (SVG) 2, черновик редактора W3C от 13 июня 2013 г.» . Рабочая группа по SVG. 2013. Архивировано из оригинала 4 декабря 2013 года . Проверено 17 сентября 2013 г.
- ^ «Спецификация SVG, «Обрезка, маскирование и композитинг» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 1 декабря 2009 г. Проверено 19 октября 2009 г.
- ^ «Спецификация SVG, «Эффекты фильтров» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 28 августа 2006 г. Проверено 19 октября 2009 г.
- ^ «Спецификация SVG, «Интерактивность» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 5 июля 2019 г. Проверено 19 октября 2009 г.
- ^ "Спецификация SVG, "Связывание" " . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 25 июня 2019 г. . Проверено 19 октября 2009 г.
- ^ «Спецификация SVG, «Сценарии» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 1 октября 2009 г. Проверено 19 октября 2009 г.
- ^ «Спецификация SVG, «Анимация» » . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 27 августа 2006 г. Проверено 19 октября 2009 г.
- ^ "Спецификация SVG, "Шрифты" " . Консорциум Всемирной паутины. 14 января 2003 г. Архивировано из оригинала 26 сентября 2009 г. Проверено 19 октября 2009 г.
- ^ "Спецификация SVG, "Метаданные" " . Консорциум Всемирной паутины. Архивировано из оригинала 3 мая 2009 года . Проверено 19 октября 2009 г.
- ^ Штрайхардт, Андреас (16 сентября 2003 г.). «KDE покоряет векторы с помощью KSVG» . Новости КДЕ . Архивировано из оригинала 30 июня 2023 года . Проверено 11 февраля 2012 г.
- ^ «Ошибка 276431 — внешний SVG не загружается из тега img» . Мозилла. Архивировано из оригинала 24 октября 2012 года . Проверено 9 ноября 2011 г. [ целостность текста и источника? ]
- ^ Лусотек (25 февраля 2009 г.). «Изображение SVG не отображается в Firefox» . mozilla.dev.tech.svg . Группы Google . Архивировано из оригинала 14 мая 2011 года . Проверено 25 февраля 2010 г.
- ^ Бретц9 (25 августа 2008 г.). «Введение в SVG в HTML» . Центр разработчиков Mozilla . Мозилла . Архивировано из оригинала 5 декабря 2008 года . Проверено 25 февраля 2010 г.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ Свенссон, Питер (10 сентября 2008 г.). «Создатель Web обнаружил ошибку в Internet Explorer» . Новости Эн-Би-Си . Ассошиэйтед Пресс. Архивировано из оригинала 9 ноября 2013 года . Проверено 25 февраля 2010 г.
- ^ «SVG в Firefox» . Центр разработчиков Mozilla . Мозилла . 23 октября 2009 г. Архивировано из оригинала 23 июня 2008 г. Проверено 25 февраля 2010 г.
- ^ «Статус Mozilla SVG» . Мозилла . Архивировано из оригинала 5 марта 2010 года . Проверено 25 февраля 2010 г.
- ^ Мгджбот (15 января 2008 г.). «Улучшения SVG в Firefox 3» . Центр разработчиков Mozilla . Мозилла . Архивировано из оригинала 9 февраля 2014 года . Проверено 25 февраля 2010 г.
- ^ «Состояние WebKit SVG» . Вебкит . 5 января 2010 года. Архивировано из оригинала 10 февраля 2010 года . Проверено 25 февраля 2010 г.
- ^ «Чат экспертной зоны Windows Internet Explorer 8 (19 июня 2008 г.)» . Майкрософт. 19 июня 2008 г. Архивировано из оригинала 17 марта 2010 г. Проверено 24 октября 2010 г.
- ^ Шиллер, Джефф (13 февраля 2010 г.). «Поддержка SVG» . Архивировано из оригинала 16 февраля 2009 года . Проверено 25 февраля 2010 г.
- ^ «Что нового в Internet Explorer 9» . Сеть разработчиков Microsoft . Майкрософт . 22 марта 2011 года. Архивировано из оригинала 5 апреля 2011 года . Проверено 22 марта 2011 г.
- ^ «SVG (Windows)» . Центр разработки Internet Explorer . Майкрософт . Архивировано из оригинала 20 марта 2014 года . Проверено 27 августа 2014 г.
- ^ «Состояние веб-платформы Microsoft Edge и план развития — Microsoft Edge Development» . разработчик.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 (бета) для Android поддерживает изображения SVG» . Андроид выпуск 1376 . 16 декабря 2010 года. Архивировано из оригинала 21 августа 2014 года . Проверено 29 января 2014 г.
- ^ «Поддержка SVG» . РИМ. Архивировано из оригинала 10 октября 2011 года . Проверено 6 октября 2011 г.
- ^ «BlackBerry Torch: Система показателей разработчика HTML5» . Сенча . Архивировано из оригинала 5 марта 2014 года . Проверено 6 октября 2011 г.
- ^ «Информация о продукте S60» . S60.com. Архивировано из оригинала 13 октября 2007 года . Проверено 19 октября 2009 г.
- ^ Ежич, Дамир (15–17 июля 2002 г.). «SVG для встраиваемых систем» . Цюрих 2002 . svgopen.org. Архивировано из оригинала 16 марта 2012 года . Проверено 5 апреля 2012 г.
- ^ «ЭСВГ» . Интеллектуальное встраиваемое программное обеспечение Intesis . 2010. Архивировано из оригинала 3 марта 2012 года . Проверено 29 января 2014 г.
- ^ Селинджер, Питер (2001–2013). «Potrace – Преобразование растровых изображений в векторную графику» . SourceForge Проект Potrace . Архивировано из оригинала 9 сентября 2009 года . Проверено 29 января 2014 г.
- ^ «Что нового в PowerPoint для Microsoft 365» . support.microsoft.com . Сентябрь 2019. Архивировано из оригинала 13 марта 2021 года . Проверено 17 апреля 2021 г.
- ^ Нгуен, Тхань Нгуен (7 ноября 2019 г.). «Анатомия поверхности атаки масштабируемой векторной графики (SVG) в Интернете» . Блог Фортинет . Архивировано из оригинала 21 февраля 2023 года . Проверено 21 февраля 2023 г.
- ^ Перейти обратно: а б «Безопасность SVG — W3C Wiki» . W3C . Архивировано из оригинала 21 февраля 2023 года . Проверено 21 февраля 2023 г.
- ^ Конколато, Сирил (июль 2005 г.). «Информационный документ по MPEG-4 LASeR» . Международная организация по стандартизации . Архивировано из оригинала 25 июля 2011 года . Проверено 29 августа 2010 г.
- ^ «ISO/IEC 14496-20:2008 - Информационные технологии. Кодирование аудиовизуальных объектов. Часть 20. Упрощенное представление сцены приложения (LASeR) и простой формат агрегирования (SAF)» . Международная организация по стандартизации . Архивировано из оригинала 14 мая 2011 года . Проверено 30 октября 2009 г.
- ^ «LASeR — стандарт MPEG для мультимедийных служб» (PDF) . Архивировано (PDF) из оригинала 21 февраля 2011 года . Проверено 11 апреля 2010 г.
- ^ Кьярильоне, Леонардо (8 марта 2005 г.). «Езда на медиабитах — Биты и байты» . Архивировано из оригинала 25 сентября 2010 года . Проверено 30 октября 2009 г.
Внешние ссылки
[ редактировать ]- Спецификации страницы W3C SVG , список реализаций
- W3C SVG Primer W3C Primer (проект) под эгидой SVG Interest Group
- MDN — SVG: масштабируемая векторная графика