اس‌وی‌جی

استاندارد باز برای گرافیک برداری دو بعدی

نگاره‌سازی برداری مقیاس‌پذیر (به انگلیسی: Scalable Vector Graphics) یا اس‌وی‌جی (به انگلیسی: SVG) یک قالب تصویر برداری مبتنی بر اکس‌ام‌ال برای گرافیک دوبعدی است که توانایی تعامل و پویانمایی را نیز دارد. مشخصات اس‌وی‌جی یک استاندارد باز است که توسط ائتلاف وب جهان‌گستر (W3C) از سال ۱۹۹۹ تولید شده‌است.

اس‌وی‌جی
پسوند(های) نام پرونده
.svg, .svgz
نوع رسانهٔ اینترنتی
image/svg+xml[۱][۲]
شناسانه نوع یکسان
public.svg-image
توسعه‌دهندهW3C
ارائهٔ اولیه۴ سپتامبر ۲۰۰۱ (۲۳ سال پیش) (۲۰۰۱-04}})
آخرین نسخه
1.1 (ویرایش دوم)
(۱۶ اوت ۲۰۱۱؛ ۱۳ سال پیش (۲۰۱۱-16}}))
گونهگرافیک برداری
نیاکانXML
استاندارد بین‌المللیW3C SVG
باز؟بله
وبگاه

تصاویر اس‌وی‌جی در قالب گرافیک برداری تعریف می‌شوند و در فایل‌های متنی اکس‌ام‌ال ذخیره می‌شوند. از این رو تصاویر اس‌وی‌جی را بدون تأثیر روی کیفیتش می‌توان مقیاس‌دهی اندازه‌ای نمود، همچنین فایل‌های اس‌وی‌جی قابلیت جستجو، نمایه‌سازی، اسکریپت‌دهی ... و فشرده‌سازی را دارند. فایل‌های متنی اکس‌ام‌ال را می‌توان توسط ویرایشگر متنی یا ویرایشگر گرافیک برداری ایجاد و ویرایش نمود، همچنین بیشتر مرورگرهای وب رایج کنونی آن‌ها را پردازه (رندر) می‌دهند.

بررسی اجمالی

ویرایش

اس‌وی‌جی از سال ۱۹۹۹ در ائتلاف وب جهان‌گستر (W3C) در حال گسترش بوده‌است، پس از آنکه شش پیشنهاده رقیب برای زبان گرافیک برداری در سال ۱۹۹۸ به ائتلاف ارسال شد.[۳]

کارگروه ابتدایی اس‌وی‌جی تصمیمی برای ایجاد هیچ‌کدام از موارد ارسالی تجاری را نداشت، بلکه می‌خواست یک زبان نشان‌گذاری جدید ایجاد کند که از همه الهام می‌گرفت ولی مبتنی بر هیچ‌کدام نبود.[۳]

در اس‌وی‌جی سه نوع شیء گرافیکی وجود دارد: اشکال گرافیک برداری (مثل مسیر شامل خط مستقیم، و منحنی)، تصاویر بیت‌مپ و متن. اشیای گرافیکی را می‌توان به اشیای از قبل پرداز شده (رندر شده) گروه‌بندی، استایل‌دهی، تبدیل و ترکیب کرد. مجموعه ویژگی شامل تبدیل تودرتو، مسیر الصاقی، ماسک آلفا، تاثیرات فیلتری، و اشیای قالبی است. نقاشی اس‌وی‌جی می‌تواند تعاملی باشد، همچنین می‌تواند شامل پویانمایی باشد، که در عناصر اس‌وی‌جی اکس‌ام‌ال تعریف شده‌است، یا اینکه از طریق اسکریپت‌دهی که به مدل شیء سند (DOM) برای اس‌وی‌جی دسترسی دارد. اس‌وی‌جی از سی‌اس‌اس برای استایل‌دهی و از جاوااسکریپت برای اسکریپت‌دهی استفاده می‌کند. متن، که شامل بین‌المللی‌سازی و محلی‌سازی هم هست، در داخل متن ساده در SVG DOM پدیدار می‌شود، که این موضوع دسترس‌پذیری گرافیک اس‌وی‌جی را افزایش می‌دهد.[۴]

در سال ۲۰۱۱ مشخصات SVG به نسخه ۱٫۱ روزآمدسازی شد. دو نوع «رخ‌نمای اس‌وی‌جی موبایل» وجود دارد، یکی اس‌وی‌جی تاینی (به انگلیسی: SVG Tiny) و یکی اس‌وی‌جی بیسیک (به انگلیسی: SVG Basic)، که برای دستگاه‌های همراه ساخته شده‌اند که توانایی محاسباتی و نمایشی کمتری دارند.[۵] در ۱۵ سپتامبر ۲۰۱۶ مشخصات اس‌وی‌جی ۲ تبدیل به یک پیشنهاده کاندید W3C شد. مشخصات اس‌وی‌جی ۲ ویژگی‌های جدید زیادی، علاوه بر موارد موجود در اس‌وی‌جی ۱,۱ و اس‌وی‌جی تاینی ۱,۲، را شامل شده‌است.[۶]

اگرچه مشخصات اس‌وی‌جی در درجه اول روی زبان نشان‌گذاری گرافیک برداری تمرکز دارد، طراحی آن شامل توانمندی‌های اساسی برای یک زبان توصیف صفحه مثل موارد موجود در ادوبی پی‌دی‌اف است. در این زبان قابلیت‌هایی برای گرافیک غنی وجود دارد، و برای اهداف استایل‌دهی با CSS سازگاری دارد. اس‌وی‌جی شامل اطلاعات مورد نیاز برای قرار دادن هر گلیف و تصویر در یک محل انتخاب شده روی یک صفحه پرینتی است.[۷]

اسکریپت‌دهی و پویانمایی

ویرایش

نقاشی اس‌وی‌جی می‌تواند پویا و تعاملی باشد. اصلاحات مبتنی بر زمان برای عناصر را می‌توان به زبان SMIL توصیف کرد، روش دیگر توصیف، برنامه‌نویسی در یک زبان اسکریپتی (مثل جاوااسکریپت) است. ائتلاف W3C صراحتاً زبان SMIL را به عنوان استاندارد پویانمایی در اس‌وی‌جی پیشنهاد کرده‌است.[۸]

یک مجموعه غنی از رسیدگی به رویداد مثل "onmouseover" و "onclick" را می‌توان به هر شیء گرافیکی اس‌وی‌جی انتساب داد تا به آن‌ها وقعه و عمل اعمال کنیم.

فشرده‌سازی

ویرایش

تصاویر اس‌وی‌جی، که نوعی اکس‌ام‌ال هستند، شامل تعداد زیادی قطعه متن تکراری هستند، از این رو برای الگوریتم‌های فشرده‌سازی داده بدون‌اتلاف بسیار مناسب اند. وقتی که یک تصویر اس‌وی‌جی توسط الگوریتم gzip فشرده شود، به آن یک تصویر SVGZ گفته می‌شود که از پسوند نام فایل متناظر .svgz استفاده می‌کند. نمایشگرهای سازگار با SVG 1.1 تصاویر فشرده‌سازی شده را نمایش می‌دهند.[۹] یک فایل SVGZ معمولاً ۲۰ تا ۵۰ درصد حجم کمتری از اندازه اصلی دارد.[۱۰] ائتلاف W3C چندین فایل SVGZ را برای آزمایش سازگاری ارائه کرده‌است.[۱۱]

 
استانداردهای وب

HTML
RDF
CSS
DOM
XHTML
XML
SVG
W3C
DHTML

اس‌وی‌جی زبانی‌ست از نوع اکس‌ام‌ال که به منظور ایجاد، انتشار، و کار با گرافیک دوبعدی و نیز کاربردهای گرافیکی بر روی اینترنت ایجاد گردیده‌است. به عنوان استانداردی جدید از سوی کنسرسیوم وب جهان‌شمول (W3C)، اس‌وی‌جی باعث کوچک‌تر گردیدن، سریع‌تر بودن، و تعاملی‌تر (interactive) شدن اسناد دربردارندهٔ گرافیک و انیمیشن بر روی وب می‌گردد. نرم‌افزارهای گوناگونی از جمله اینک‌اسکیپ برای ساختن تصاویر اس‌وی‌جی به کار می‌روند.

تجربهٔ اوّل

ویرایش

در حال حاضر، اکثر مرورگرهای امروزی (همچنین اینترنت اکسپلورر ۱۰ و ۱۱) از اس‌وی‌جی پشتیبانی می‌کنند. از آنجا که برخی از مرورگرهای وب قدیمی (مثل IE نسخه ۶ و ۷) توانایی ارائهٔ (rendering) اس‌وی‌جی را ندارند، پیش از همه‌چیز، باید به تهیه و نصب یک نرم‌افزار ویژه موسوم به اس‌وی‌جی‌نگر (SVG viewer) اقدام نمائیم. پس از آن می‌توانیم هریک از مثال‌های ساده و ابتدائی زیر را در فایل‌های جداگانه‌ای که به اس‌وی‌جی. ختم می‌شوند ذخیره نموده و مورد آزمایش قرار دهیم. اگر از مرورگرهای امروزی استفاده می‌کند (کروم، فایر فاکس و …) نیازی با اینکار نیست.

مثال ۱: ترسیم دایره‌ای به مرکز (۲۰۰ ،۶۰۰) (با واحد پیکسل) و با شعاع ۳ سانتیمتر

<svg>
<circle cx="600" cy="200" r="3cm"/>
</svg>

مثال ۲: ترسیم پاره خطی با نقطهٔ شروع (۵۰ ،۷۰)، و نقطهٔ انتهایی (۴۰۰ ،۲۰۰) (با واحد پیکسل)، به رنگ قرمز، و دارای ضخامت ۸ پیکسل

<svg>
<line x1="70" y1="50" x2="300" y2="400" style="stroke: red; stroke-width: 8"/>
</svg>

مثال ۳: در ابتدا، یک مستطیل با رأس گوشهٔ بالایی سمت چپ (۶۰ ،۸۰)، دارای عرض ۴۰۰ و قاعدهٔ ۶۰ رسم می‌شود، و سپس، پهنای مستطیل در مدت زمانی ۱۵ ثانیه (زمان اسمی و نه واقعی) از ۴۰۰ به ۲۰ به صورت انیمیشن کاهش می‌یابد. (همهٔ واحدها پیکسل است)

<svg>
<rect x="80" y="60" width="400" height="60" stroke="black" fill="none">
<animate attributeName="width" attributeType="XML"
from="400" to="20"
begin="0s" dur="15s"
fill="freeze"/>
</rect>
</svg>

مثال ۴: یک انیمیشن واقعی‌تر

<svg>
<rect x="210" y="210" width="20" height="20" style="stroke: black; fill: red;">

<animate attributeName="width" attributeType="XML"
begin="0s" dur="1s"
from="20" to="120"
fill="freeze"/>

<animate attributeName="height" attributeType="XML"
begin="0s" dur="1.0s"
from="20" to="120"
fill="freeze"/>

</rect>

<circle cx="270" cy="270" r="60"
style="fill: green; stroke: black;">

<animate attributeName="r" attributeType="XML"
begin="0.7s" dur="0.8s" from="20" to="50" fill="freeze"/>
</circle>
</svg>

نمونه‌های مختلف

خودآموزها

ویرایش

اس‌وی‌جی در وب

ویرایش

در حال حاضر وب سایت‌های بسیاری از جمله ویکی‌پدیا از اس‌وی‌جی و Raster برای تصاویر استفاده می‌کنند.

گوگل در تاریخ ۳۱ اوت ۲۰۱۰ اعلام کرد که از این پس موتور جستجو گوگل می‌تواند تصاویر اس‌وی‌جی را در قالب فایل یا به شکل جاسازی شده در اچ‌تی‌ام‌ال ایندکس کند، همچنین در تاریخ ۸ دسامبر ۲۰۱۰ گوگل ایندکس شدن تصاویر اس‌وی‌جی را در جستجو تصاویر گوگل میسر ساخت.

پشتیبانی مرورگرها

ویرایش

Konqueror در نسخه ۳٫۲ منتشر شده در فوریه ۲۰۰۴ اولین مرورگری بود که از اس‌وی‌جی پشتیبانی کرد. در سال ۲۰۱۱ تمامی مرورگرهای تحت دسکتاپ با ویژگی‌های کم قادر به پشتیبانی از اس‌وی‌جی بودند. برخی از نسخه‌های قبلی فایرفاکس (نسخه‌های ۱٫۵ تا ۳٫۶) قادر به نمایش برخی از ویژگی‌های اس‌وی‌جی بود البته موضوع تنها به کمک برچسب‌های <object> و <iframe> امکان‌پذیر بود.

در جدول زیر وضعیت پشتیبانی مرورگرها آمده‌است:

وضعیت پشتیبانی مرورگرها از اس‌وی‌جی
مرورگر نسخه‌های قابل پشتیبانی نسخه‌های غیرقابل پشتیبانی
اینترنت اکسپلورر(IE) ۹٬۱۰٬۱۱ ۶٬۷٬۸
اج(Edge) از نسخه (۱۲) به بعد
فایرفاکس(Firefox) از نسخه (۳) به بعد
گوگل کروم(Chrome) از نسخه (۴) به بعد
سافاری(Safari) از نسخه (۳٫۲) به بعد
اپرا(Opera) از نسخه (۱۰٫۱) به بعد

جستارهای وابسته

ویرایش

منابع

ویرایش
  1. "Media Type Registration for image/svg+xml". W3C. Retrieved 5 February 2014.
  2. St. Laurent, Simon; Makoto, Murata; Kohn, Dan (January 2001). "XML Media Types". Retrieved 5 February 2014. {{cite journal}}: Cite journal requires |journal= (help)
  3. ۳٫۰ ۳٫۱ "Secret Origin of SVG". World Wide Web Consortium. 21 December 2007. Retrieved 1 January 2011.
  4. "Scalable Vector Graphics (SVG) 1.1 (Second Edition)". W3C.
  5. Capin, Tolga. "Mobile SVG Profiles: SVG Tiny and SVG Basic". W3C. Retrieved 28 January 2017.
  6. "Scalable Vector Graphics (SVG) 2". W3C. Retrieved 28 January 2017.
  7. Alex, Danilo; Fujisawa, Jun (2002). "SVG as a Page Description Language". svgopen.org. Retrieved 24 February 2010.
  8. Paul, Festa (9 January 2003). "W3C releases scripting standard, caveat". CNet. Retrieved 24 February 2010.
  9. See www.w3.org/TR/SVG11/conform.html#ConformingSVGViewers which states, "SVG implementations must correctly support gzip-encoded [RFC1952] and deflate-encoded [RFC1951] data streams, for any content type (including SVG, script files, images)."
  10. "Saving compressed SVG (SVGZ)". SVG Zone. Adobe Systems. 14 July 2009. Retrieved 24 February 2010.
  11. For example, dev.w3.org/SVG/profiles/1.1F2/test/harness/htmlObject/conform-viewers-01-t.html

پیوند به بیرون

ویرایش