EnglishРусскийTürkçeDeutschFrançais О сайте · RSS
WebInterface.org
WebInterface.org

Заметки о рисунке, печати, фотографии и картинках, которые делает компьютер.

Начало · Компьютерная графика · Масштабируемая векторная графика

Масштабируемая векторная графика

Масштабируемая векторная графика (SVG) это формат на основе XML для двумерных изображений с поддержкой интерактивности и анимации. Спецификация SVG это открытый стандарт. Консорциум Всемирной паутины (W3C) работает над ней с 1999 года. Изображение SVG хранится в виде текста. Поскольку картинка состоит из векторов, а не из сетки пикселей, её можно масштабировать, и края при этом не распадаются. Поскольку файл текстовый, по нему можно искать, его можно индексировать, обрабатывать скриптами и сжимать. Его можно написать в текстовом редакторе или создать в программе для векторного рисования. Большинство веб-браузеров умеют его отображать.

Файл может содержать и JavaScript. Это полезно, когда так и задумано, но это повод для осторожности, если файл прислал кто-то другой.

Шесть предложений, а затем новый язык

В течение 1998 года в W3C поступило шесть конкурирующих предложений векторного языка для веба.

  • Web Schematics от CCLRC
  • Precision Graphics Markup Language от Adobe, IBM, Netscape и Sun
  • Vector Markup Language от Autodesk, Hewlett-Packard, Macromedia, Microsoft и Vision
  • Hyper Graphics Markup Language от Orange UK и PRP
  • WebCGM от Boeing, PTC, InterCAP, Inso, CCLRC и Xerox
  • DrawML от Excosoft

Первая рабочая группа SVG под руководством Криса Лилли решила не принимать ни одно из коммерческих предложений в том виде, в каком его подали. Вместо этого группа написала новый язык разметки, учтя эти предложения, но не взяв за основу ни одно из них. Именно поэтому SVG не выглядит как «формат Adobe с переименованными элементами» или как формат Microsoft. Авторы предложений до сих пор узнают в нём отдельные фрагменты своих идей. Но результат не достался никому из них.

Поначалу SVG распространялся медленно, в основном потому, что старые версии Internet Explorer его не отображали. К 2011 году все крупные настольные браузеры в той или иной мере его поддерживали. У встроенной поддержки очевидные преимущества. Плагин не нужен. SVG может находиться в одном документе с остальным содержимым. Отрисовка и скрипты работают надёжнее, когда за них отвечает сам браузер, а не прикрученная сбоку сторонняя программа. На мобильных устройствах поддержка появлялась постепенно. Разные устройства и браузеры реализовали SVG Tiny 1.1 или 1.2, урезанные профили полного языка. На веб-странице удобнее всего часто встроенный SVG, когда рисунок записан прямо внутри HTML-документа, а не загружается отдельным изображением. Плоские изображения объясняют, почему векторное описание подходит для знака, который должен оставаться чётким. SVG это и есть такое описание, оформленное как стандарт.

Версии

SVG 1.0 стал рекомендацией W3C 4 сентября 2001 года. SVG 1.1 вышел 14 января 2003 года. Главное изменение в версии 1.1 состояло в разделении спецификации на модули, чтобы подмножества можно было определять как профили. В остальном 1.1 и 1.0 почти не различаются. В тот же день рекомендациями стали и мобильные профили SVG Tiny и SVG Basic. Это профили версии 1.1, а не отдельный язык.

SVG Tiny 1.2 стал рекомендацией 22 декабря 2008 года. Изначально он задумывался как профиль запланированного SVG Full 1.2. Эту полную версию отменили в пользу SVG 2, а Tiny 1.2 переработали в самостоятельную спецификацию. Поддерживали его в целом плохо. Второе издание SVG 1.1, опубликованное 16 августа 2011 года, собирает исправления и уточнения. Новых возможностей оно не добавляет. В 2020 году черновик IETF описал SVG Tiny 1.2 Portable/Secure, более строгое подмножество, которое также называют SVG Tiny P/S. Этого подмножества требует черновик BIMI, посвящённый логотипам брендов в электронной почте. Крошечный и жёстко ограниченный рисунок это совсем не то же самое, что рисунок, который может выполнить скрипт, и для почты нужен именно первый.

SVG 2 удаляет или объявляет устаревшими некоторые части версии 1.1 и заимствует возможности из HTML5 и Web Open Font Format. Несколько шрифтовых элементов, в том числе glyph и altGlyph, исчезают, и их заменяет WOFF. Атрибут xml:space объявлен устаревшим в пользу CSS. Добавлены возможности HTML, например атрибуты translate и data-*. Некоторые идеи по работе с текстом из Tiny 1.2 планируется включить, но они ещё не оформлены. В общем случае SVG 2 не включает в себя Tiny 1.2 целиком. Статус кандидата в рекомендации он получил 15 сентября 2016 года. Пересмотренные версии кандидата вышли 7 августа 2018 года и 4 октября 2018 года. Более поздний черновик датирован 14 сентября 2025 года. Практический вывод для того, кто пишет файл сегодня, скучный, но полезный. SVG 1.1 это то, о чём браузеры действительно договорились. SVG 2 это направление, в котором движется спецификация. Файл, который ограничивается широко поддерживаемой частью версии 1.1, отобразится. Если же файл зависит от возможностей версии 2, его нужно проверять в браузере, а не по черновику.

В чём сильна SVG

SVG используют для рисунков в вебе и для печати. Он хорошо сжимается с помощью gzip. Сжатый файл называют SVGZ, и обычно он на 20–50 процентов меньше исходного. Формат может содержать и метаданные, поэтому индексирование и поиск здесь меньше похожи на гадание, чем в случае фотографии. Что лежит в файле SVG это перечень его составляющих: контуры, текст, заливка, фильтры, анимация. Спецификацию ведёт W3C, и актуальная версия текста хранится у них.

Раньше: Опередила ли графика VR своё время?Дальше: Что лежит в файле SVG