SVG (масштабируемая векторная графика) — XML-подобный язык для визуального описания векторной графики.
Opera Mini — показывает статическую картинку.
31 августа 2010 года Google заявила о начале индексации SVG.
<svg xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink">…</svg>
<rectx="100" y="100"width="550" height="550"fill="#FAFAA2" stroke="#000"/>
<circlecx="100" cy="100" r="275"fill="#FAFAA2" stroke="#000"/>
<linex1="230" y1="570"x2="640" y2="490"stroke="#000"/>
А также: polyline, polygon, path, градиенты и многое другое…
SMIL → Synchronized Multimedia Integration Language *
Произносится как «смайл», будущее под сомнением.
<rect width="50" height="150"rx="25" ry="25" id="rect"/>
<use x="225" y="0" xlink:href="#rect"/><use x="225" y="350" xlink:href="#rect"/>
<animateTransform attributeName="transform"type="rotate" dur="0.6s" calcMode="discrete"values=" 45,250,250; 90,250,250; 135,250,250;180,250,250; 225,250,250; 270,250,250;315,250,250; 360,250,250"repeatCount="indefinite"/>
<g transform="scale(1, 0.2)"><circle class="glow"/><circle class="hole"/><animateTransform … "/></g>
Canvas (англ. canvas — «холст») — набор API для создания и управления растровой графикой при помощи JavaScript.
Имитация: через VML ExplorerCanvas, через Flash fxCanvas.
Не забывайте про фолбек: <canvas> Too Old </canvas>.
<canvas id="canvas">width="600" height="600"></canvas>
var canvas =document.querySelector('#canvas').getContext('2d');
canvas.beginPath();…canvas.closePath();canvas.fill();canvas.stroke();
Обратите внимание на порядок применения fill() и stroke().
canvas.rect(25, 25, 550, 550);canvas.fillStyle = '#FAFAA2';canvas.strokeStyle = '#000';canvas.lineWidth = 50;
canvas.arc(300, 300, 275, 0, Math.PI*2, true);canvas.fillStyle = '#FAFAA2';canvas.strokeStyle = '#000';canvas.lineWidth = 50;
function draw() {canvas.clearRect(0, 0, 600, 600);canvas.arc(x, y, 100, 0, Math.PI*2, true);x += 2; y += 2;}
var pepelsbey = new Image();pepelsbey.src = 'pepelsbey.png';pepelsbey.onload = function() {canvas.drawImage(pepelsbey, 44, 44);}
canvas.font = 'bold 7em "PT Sans", sans-serif';canvas.fillStyle = 'rgba(0, 0, 0, 0.5)';canvas.textAlign = 'center';canvas.textBaseline = 'top';canvas.fillText('Ололо', 290, 330);
SVG — масштабируемый вектор, с содержимым
Canvas — плоская, фиксированная растровая графика
Но вообще — это длинная история…
Вадим Макеев, Opera Software
Презентация: pepelsbey.net/pres/dynamic-graphics