SVG (Scalable Vector Graphics)
SVG graphics, defined in XML, maintain scalability without loss of quality when zoomed or resized, and can be directly embedded in HTML pages.
All major browsers support SVG.
What is SVG?
· SVG stands for Scalable Vector Graphics.
· It is used to define vector-based graphics for the web.
· SVG defines graphics in XML format.
· Every element and attribute in SVG files can be animated.
· SVG is a W3C recommendation.
· SVG integrates with other standards like CSS, DOM, XSL, and JavaScript.
The <svg> Element
The HTML <svg>
element serves as a container for SVG graphics.
SVG provides various methods for drawing paths, rectangles, circles, polygons, text, and more.
Example
<!DOCTYPE html> <html> <body> <svg width=”100″ height=”100″> <circle cx=”50″ cy=”50″ r=”40″ stroke=”green” stroke-width=”4″ fill=”yellow” /> </svg> </body> </html> |
Example
<svg width=”400″ height=”120″> <rect x=”10″ y=”10″ width=”200″ height=”100″ stroke=”red” stroke-width=”6″ fill=”blue” /> </svg> |
Example
<svg width=”400″ height=”180″> <rect x=”50″ y=”20″ rx=”20″ ry=”20″ width=”150″ height=”150″ style=”fill:red;stroke:black;stroke-width:5;opacity:0.5″ /> </svg> |
Example
<svg width=”300″ height=”200″> <polygon points=”100,10 40,198 190,78 10,78 160,198″ style=”fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;” /> </svg> |
Example
<svg height=”130″ width=”500″> <defs> <linearGradient id=”grad1″> <stop offset=”0%” stop-color=”yellow” /> <stop offset=”100%” stop-color=”red” /> </linearGradient> </defs> <ellipse cx=”100″ cy=”70″ rx=”85″ ry=”55″ fill=”url(#grad1)” /> <text fill=”#ffffff” font-size=”45″ font-family=”Verdana” x=”50″ y=”86″>SVG</text> Sorry, your browser does not support inline SVG. </svg> |
SVG is a language for describing 2D graphics using XML, whereas Canvas draws 2D graphics on the fly using JavaScript.
Since SVG is XML-based, every element is accessible within the SVG DOM, allowing you to attach JavaScript event handlers to SVG graphics.
In SVG, each drawn shape is retained as an object. When the attributes of an SVG object are modified, the browser can automatically re-render the shape.
Canvas, on the other hand, renders graphics pixel by pixel. Once a graphic is drawn on a canvas, it is forgotten by the browser. To change its position, the entire scene, including any objects that were covered by the graphic, must be redrawn.
SVG |
Canvas |
· Resolution independent · Supports event handlers · Excellent text rendering capabilities · Slow rendering for complex graphics · Not ideal for game applications |
· Resolution dependent · Does not support event handlers · Poor text rendering capabilities · Allows saving the resulting image as .png or .jpg · Well-suited for graphic-intensive games |