Scalable Vector Graphics

Матер?ал з В?к?пед?? ? в?льно? енциклопед??.
(Перенаправлено з SVG )
Перейти до нав?гац?? Перейти до пошуку
Scalable Vector Graphics
Розширення файлу : . .svg , .svgz
MIME -тип: image/svg+xml [1]
Розробник: World Wide Web Consortium
Тип формату: формат файл?в векторно? граф?ки
Розширений з: XML

Scalable Vector Graphics (скорочено SVG) (з англ. масштабована векторна граф?ка ) ? специф?кац?я мови розм?тки , що базу?ться на XML , та формат файл?в для двом?рно? векторно? граф?ки, як статично?, так ? ан?мовано? та ?нтерактивно?. SVG може бути виключно декларативним, або м?стити описи сценар??в. Зображення можуть м?стити зовн?шн? л?нки шляхом застосування простих XLink -?в. [2] Ця специф?кац?я ? в?дкритим стандартом, розробленим робочою групою англ. SVG Working Group орган?зац?? World Wide Web Consortium .

?стор?я розвитку

[ ред. | ред. код ]

SVG був розроблений робочою групою W3C SVG Working Group, починаючи в?д 1998 , п?сля того як Macromedia та Microsoft ввели Vector Markup Language (VML), ? водночас Adobe Systems та Sun Microsystems представили конкуруючий формат PGML . Робочу групу очолив Chris Lilley з W3C.

  • SVG 1.0 набув статусу рекомендац?? W3C 4 вересня 2001. [3]
  • SVG 1.1 став рекомендац??ю W3C 14 с?чня 2003. [4] Специф?кац?я SVG 1.1 ма? модульну структуру, щоб дозволити реал?зовувати п?дмножину формату в проф?лях. Кр?м цього, м?ж SVG 1.1 та SVG 1.0 дуже мало в?дм?нностей.
    • SVG Tiny та SVG Basic (Моб?льний проф?ль SVG) стали рекомендац??ю W3C водночас, 14 с?чня 2003. Вони описан? як проф?л? SVG 1.1.
  • SVG Tiny 1.2 став кандидатом в рекомендац?? W3C 10 серпня 2006. [5] [6] , ? оф?ц?йною рекомендац??ю W3C ? 22 грудня 2008 [7] . SVG Full 1.2 ? робочим нарисом (W3C Working Draft). SVG Tiny 1.2 спочатку був випущений як проф?ль, але п?зн?ше перероблений у повноц?нну специф?кац?ю, включаючи вс? необх?дн? частини в?д SVG 1.1 та SVG 1.2. SVG 1.2 Full дода? модул? всередину ядра SVGT 1.2.
  • SVG Print дода? багатостор?нков? документи ? обов'язкову п?дтримку управл?ння кольорами.

П?дтримка в браузерах

[ ред. | ред. код ]
Браузер у верс?? п?дтриму?
Internet Explorer 8.0 н? [8] , вбудована п?дтримка з'явилась лише в IE9 beta [9] [10]
Mozilla Firefox з 1.5 [11] так
Netscape Navigator 9.0 так
Google Chrome 3.0 так
Safari 4.0 так
Opera з 8.0 так
Chromium 6.0 так

Microsoft при?дналася до W3C SVG Working Group на початку 2010 року [12] , п?сля тривалих вагань стосовно власницьких р?шень ? конкуруючих р?шень в царин? вебграф?ки.

Властивост? та переваги формату

[ ред. | ред. код ]
Малюнок демонстру? в?дм?нн?сть м?ж растровою та векторною граф?ками. Растрове зображення утворене з окремих крапок- п?ксел?в , в той час як векторне зображення утворене з комб?нац?? форм. При зб?льшенн? або деформац?? п?ксел? растрового зображення стають пом?тн?, тод? як векторний малюнок збер?га? форму
  • Текстовий формат ? файли SVG можна читати ? редагувати за допомогою звичайних текстових редактор?в. Працювати з SVG без засоб?в в?зуального програмування не складн?ше н?ж з HTML . При прогляданн? документ?в SVG, що м?стять граф?ку, ? доступ до проглядання коду файлу, що прогляда?ться, ? можлив?сть збереження всього документу. Кр?м того, SVG файли зазвичай виходять меншими за розм?ром, н?ж пор?внянн? за як?стю зображення у форматах JPEG або GIF , а також добре п?ддаються стисненню.
  • Масштабован?сть ? SVG ? векторним форматом. ?сну? можлив?сть зб?льшити будь-яку частину зображення SVG без втрати якост?. Додатково, до елемент?в SVG документу можливо застосовувати ф?льтри ? спец?альн? модиф?катори для створення ефект?в, под?бних вживаним при обробц? растрових зображень (розмиття, витискування, складн? системи трансформац?? тощо). В текст? SVG-коду ф?льтри описуються тегами, в?зуал?зац?ю яких забезпечу? зас?б перегляду, що не вплива? на розм?р початкового файлу, забезпечуючи при цьому необх?дну ?люстративну виразн?сть.
  • Широко доступне використання растрово? граф?ки в SVG документах. ? можлив?сть вставляти елементи ?з зображеннями у форматах PNG , GIF або JPG .
  • Текст в граф?ц? SVG ? текстом, а не зображенням, тому його можна вид?ляти ? коп?ювати, в?н ?ндексу?ться пошуковими машинами, не потр?бно створювати додатков? метафайли для пошукових сервер?в.
  • Ан?мац?я реал?зована в SVG за допомогою мови SMIL (Synchronized Multimedia Integration Language), розроблено? також консорц?умом W3C . П?дтримуються скриптов? мови на основ? специф?кац?? ECMAScript . SVG-елементами можна керувати за допомогою JavaScript . Застосування скрипт?в ? ан?мац?? в SVG дозволя? створювати динам?чну ? ?нтерактивну граф?ку. У SVG забезпечу?ться под??ва модель, в?дстежуються под?? (завантаження стор?нки, зм?на ?? параметр?в, под?? миш?, клав?атури тощо). Ан?мац?я може запускатися по певн?й под?? (наприклад ≪onmouseover≫ або ≪onclick≫), що дода? граф?ц? ?нтерактивн?сть. У кожного елементу ? сво? власн? под??, до яких можна прив'язувати окрем? скрипти.
  • SVG ? в?дкритий стандарт . На в?дм?ну в?д деяких ?нших формат?в, SVG не ? чи?юсь власн?стю.
  • SVG документи легко ?нтегруються з HTML ? XHTML документами. Зовн?шн? SVG п?дключаються через тег <embed>, значення атрибуту src ?м'я файлу з розширенням ≪.svg≫, що м?стить розм?тку SVG. Атрибути width ? height визначають розм?ри област? SVG по горизонтал? ? по вертикал?. Елементи SVG сум?сн? з HTML ? DHTML .
  • Сум?сн?сть з CSS ( англ. Cascading Style Sheets ). В?дображенням (форматуванням ? декоруванням) SVG елемент?в можна управляти за допомогою таблиц? стил?в CSS 2.0 ? ?? розширень, або безпосередньо за допомогою атрибут?в SVG елемент?в.

SVG нада? вс? переваги XML :

  • Можлив?сть роботи в р?зних середовищах.
  • ?нтернац?онал?зац?я (п?дтримка Юн?коду ).
  • Широка доступн?сть для р?зних застосувань.
  • Легка модиф?кац?я через стандартн? API  ? наприклад, DOM . SVG п?дтриму? стандартизовану W3C об'?ктну модель документу DOM, забезпечуючи доступ до будь-якого елементу, що да? широк? можливост? з динам?чно? модиф?кац?? елемент?в, ?хн?х атрибут?в ? под?й.
  • Легке перетворення таблицями стил?в XSLT . Як будь-який заснований на XML формат, SVG да? можлив?сть використовувати для його обробки таблиц? трансформац?? (XSLT). Перетворюючи XML-дан? в SVG за допомогою простого XSL, можна легко отримати граф?чне представлення будь-яких даних, наприклад в?зуал?зувати х?м?чн? молекули, описаних на мов? CML (Chemical Markup Language).

Структура SVG документа

[ ред. | ред. код ]

Перший рядок ? стандартний заголовок XML, оголошення ( англ. XML declaration ), який вказу? верс?ю XML (version) (зазвичай ≪1.0≫) ? кодування символ?в (encoding) (бажано використовувати Юн?код кодування UTF-8 або UTF-16 , але ?нш? так само допустим?, наприклад, Windows-1251 ? KOI-8 ):

<?xml version="1.0" encoding="UTF-8"?>

У другому ? третьому рядках повинен розташовуватися заголовок DOCTYPE, що визнача? тип документа (Document Type Definitions) DTD :

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"

    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

На жаль, в деяких випадках при застосуванн? Mozilla Firefox з вбудованим переглядачем SVG, зм?ст оголошення DOCTYPE може бути джерелом помилок. ? рекомендац?? не використовувати декларац?ю DOCTYPE в SVG верс?й 1.0 ? 1.1. Натом?сть рекомендовано включати атрибут baseProfile в кореневий елемент <svg> з? значенням ≪full≫ [13] . Якщо з якихось причин декларац?я DOCTYPE в документ? необх?дна, рекомендовано використовувати порожню декларац?ю, як в приклад?.

<!DOCTYPE svg [ 

    <!-- ваш? дан? -->
   ]>

У четвертому рядку, розм?щу?ться кореневий елемент документа з вказ?вкою простору ?мен SVG

<svg
 version =
 "1.1"

     baseProfile=
"full"

     xmlns =
 "http://www.w3.org/2000/svg"
 
     xmlns:xlink =
 "http://www.w3.org/1999/xlink"

     xmlns:ev =
 "http://www.w3.org/2001/xml-events"

     height =
 "100%"
  width =
 "100%"
>

</svg>

Дал? йде решта тексту документа, вкладена в кореневий елемент, де власне розташовуються елементи, що описують зм?ст кодовано? сцени. Завершу?ться документ завжди закриттям кореневого тегу </svg> .

Приклад

[ ред. | ред. код ]

Простий статичний документ SVG (м?стить: контур квадрата розм?ром 400 п?ксел?в ? три нап?впрозор? кола рад?усом 100 п?ксел?в, по центру квадрата, кожне коло зм?щу?ться в?д центру квадрата приблизно на п?в рад?усу).

Для в?дображення малюнку потр?бний браузер з вбудованим переглядом формату чи з? встановленим плаг?ном.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<svg
 version =
 "1.1"

     baseProfile=
"full"

     xmlns =
 "http://www.w3.org/2000/svg"
 
     xmlns:xlink =
 "http://www.w3.org/1999/xlink"

     xmlns:ev =
 "http://www.w3.org/2001/xml-events"

     height =
 "400px"
  width =
 "400px"
>

     <rect
 x=
"0"
 y=
"0"
 width=
"400"
 height=
"400"
 fill=
"none"
 stroke=
"black"
 stroke-width=
"5px"
 stroke-opacity=
"0.5"
/>

     <g
 fill-opacity=
"0.7"
 stroke=
"black"
 stroke-width=
"0.5px"
>

        <circle
 cx=
"200px"
 cy=
"200px"
 r=
"100px"
 fill=
"red"
   transform=
"translate(  0,-50)"
 />

        <circle
 cx=
"200px"
 cy=
"200px"
 r=
"100px"
 fill=
"blue"
  transform=
"translate( 70, 50)"
 />

        <circle
 cx=
"200px"
 cy=
"200px"
 r=
"100px"
 fill=
"green"
 transform=
"translate(-70, 50)"
 />

     </g>

</svg>

Кресленик виконано в КОМПАС-Граф?к та експортовано у SVG формат

Стиснення SVGZ

[ ред. | ред. код ]

Оск?льки код SVG займа? досить багато м?сця, була створена ≪обгортка≫ SVGZ, коли файл SVG упаковують в gzip , а отриманому арх?ву зазвичай надають розширення ≪SVGZ≫.

SVG добре стиска?ться [14] , оск?льки це текстовий XML-документ, що ма? регулярну структуру.

Специф?кац?? стандарту

[ ред. | ред. код ]


Виноски

[ ред. | ред. код ]
  1. M Media Type registration for image/svg+xml . Арх?в ориг?налу за 14 березня 2016 . Процитовано 18 с?чня 2008 .
  2. Watt, Andrew; Chris Lilley, Daniel J. Ayers et al (2003). SVG Unleashed . Indianapolis: SAMS. с. P. 77. ISBN 0-672-32429-6 . {{ cite book }} : |page= ма? зайвий текст ( дов?дка )
  3. W3C Recommendation, SVG 1.0 Specification [ Арх?вовано 11 травня 2008 у Wayback Machine .] (2001-09-04)
  4. W3C Recommendation, SVG 1.1 Specification [ Арх?вовано 16 вересня 2012 у Wayback Machine .] (2003-01-14)
  5. W3C Candidate Recommendation, SVG Tiny 1.2 Specification [ Арх?вовано 18 кв?тня 2008 у Wayback Machine .] (2006-08-10)
  6. SVG Tiny 1.2 is now a Candidate Recommendation . Арх?в ориг?налу за 24 червня 2008 . Процитовано 25 кв?тня 2008 .
  7. SVG Tiny 1.2 Advances State of the Art for Web Graphics . Арх?в ориг?налу за 4 с?чня 2010 . Процитовано 7 с?чня 2010 .
  8. Svensson, Peter (10 вересня 2008). Creator of Web spots a flaw in Internet Explorer (англ.) . Associated Press , msnbc.com . Арх?в ориг?налу за 25 серпня 2011 . Процитовано 30 листопада 2009 . {{ cite news }} : Про?гноровано нев?домий параметр |description= ( дов?дка )
  9. HTML5, Hardware Accelerated: First IE9 Platform Preview Available for Developers . Арх?в ориг?налу за 22 березня 2010 . Процитовано 17 березня 2010 .
  10. Platform Preview gives Web developers first taste of IE9 . Арх?в ориг?налу за 22 березня 2010 . Процитовано 17 березня 2010 .
  11. Brockmeier, Joe (30 листопада 2005). Review: Firefox 1.5 and Thunderbird 1.5 . Linux.com (англ.) . Процитовано 30 листопада 2009 .
  12. Microsoft Joins W3C SVG Working Group . Арх?в ориг?налу за 8 с?чня 2010 . Процитовано 7 с?чня 2010 .
  13. SVG Authoring Guidelines: Don't include a DOCTYPE declaration [ Арх?вовано 14 кв?тня 2008 у Wayback Machine .] (англ.)
  14. Minimizing SVG File Sizes - SVG 1.1 Specification . Арх?в ориг?налу за 30 вересня 2011 . Процитовано 21 серпня 2011 .

Посилання

[ ред. | ред. код ]

Б?бл?отеки

[ ред. | ред. код ]

Програмне забезпечення

[ ред. | ред. код ]

Див. також

[ ред. | ред. код ]