Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемГерасим Михалков
1 Графика и мультимедия в HTML5
2 Мультимедия в HTML5 Canvas 3D (WebGL) SVG Video Audio
4 Canvas Canvas (англ. canvas «холст») набор API для создания и управления растровой графикой при помощи JavaScript.
5 Появление Canvas Придумано Apple в 2004, как компонент в движке WebKit Mac OS для приложений Dashboard и Safari Предложено W3C в качестве стандарта Широко поддерживается современными браузерами
6 Поддержка Canvas Имитация: через VML ExplorerCanvas, через Flash fxCanvas.ExplorerCanvasfxCanvas
7 Особенности Canvas Растровый, а не векторный не масштабируется Работает через JavaScript ограниченная доступность Плоская картинка отсутствие содержимого Изменения требуют полной перерисовки Не используются плагины Экспорт в статичный файл
8 Варинты использования Визуализация данных
9 Варинты использования Анимированная графика
10 Варинты использования Веб-приложения
11 Варинты использования Игры
12 Canvas. Использование if (Modernizr.canvas) { alert("Будем рисовать!") } else { alert("Canvas не поддерживается!") }
13 2D контекст отрисовки var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d");
14 2D контекст отрисовки Конечный автомат Состояние можно сохранить и восстанавливить (save/restore) 1.Установка состояние (цвет, трансформация и т.д.) 2.Рисование (линии, примитивы)
15 Стандартная система кординат
16 Canvas API
17 Прямоугольник ctx.fillStyle = "rgb(65, 60, 50)"; ctx.fillRect(25, 50, 100, 100); ctx.strokeStyle = "rgb(65, 60, 50)"; ctx.strokeRect(130, 500, 40, 70);
18 Круг ctx.fillStyle = "rgb(65, 60, 50)"; ctx.beginPath(); ctx.arc(100, 100, 30, 0, Math.PI * 2, true); ctx.fill();
19 Кривые ctx.strokeStyle = "rgb(65, 60, 50)"; ctx.beginPath(); ctx.moveTo(50, 100); ctx.bezierCurveTo(70, 50, 130, 150, 150, 100); ctx.stroke();
20 Рисование линий ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.stroke();
21 Изображения var image = new Image; image.onload = function () { context.drawImage(image, x, y); }; image.src = "graffiti.jpg";
22 Изображения ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh);
23 Работа с пикселями ctx.createImageData() ctx.getImageData(sx, sy, sw, sh); ctx.putImageData()
24 Работа с пикселями var imgd = context.getImageData(x, y, width, height); var pix = imgd.data; // Инвертация цвета for (var i = 0, n = pix.length; i < n; i += 4) { pix[i] = pix[i]; pix[i+1] = pix[i+1]; pix[i+2] = pix[i+2]; // i+3 - альфа канал } context.putImageData(imgd, x, y);
25 Примеры Ambilight Pixelate Video Destruction
26 Текст ctx.font = 'bold 7em "PT Sans", sans-serif'; ctx.fillStyle = 'rgba(0, 0, 0, 0.5)'; ctx.textAlign = 'center'; ctx.textBaseline = 'top'; ctx.fillText('Ололо', 290, 330);
27 Наложение (Compositing). ctx.globalAlpha = 0.38; ctx.globalCompositeOperation = "source-over";
28 Тени (Shadow API) context.shadowOffsetX = 5; context.shadowOffsetY = 5; context.shadowBlur = 4; context.shadowColor = 'rgba(255, 0, 0, 0.5)'; context.fillStyle = '#00f'; context.fillRect(20, 20, 150, 100);
29 Градиенты var g1 = context.createLinearGradient(sx, sy, dx, dy); g1.addColorStop(0, '#f00'); g1.addColorStop(0.5, '#ff0'); gradient1.addColorStop(1, '#00f'); var g2 = context.createRadialGradient(sx, sy, sr, dx, dy, dr);
30 Трансформация. ctx.scale(x, y) ctx.rotate(rad) ctx.translate(x, y) ctx.transform/setTransform(a,b,c,d,e,f) y x y x 0
31 Анимация Нет встроенной поддержки анимации Способы: – setInterval() – requestAnimationFrame()
32 Достоинства и недостатки Сравнение с flash
33 Фреймфорки
34 Ссылки Canvas Cheat Sheet
35 3D Canvas (WebGL) WebGL – JavaSript API для создания интерактивной 3D графики Спецификация разработана Khronos Group /latest/ /latest/
36 WebGL
37 Возник из экспериментов над Canvas Спецификация версии 1.0 была выпущена 3 марта 2011 года Использует контекст HTML5 Canvas Построен на основе OpenGL ES 2.0OpenGL ES Код на WebGL выполняется с помощью видеокарты Игры, 360°-обзоров товаров, трёхмерные графики
38 WebGL контекст var canvas = document.getElementById("glCanvas"); var gl = canvas.getContext("experimental-webgl"); gl.clearColor(0.0, 0.0, 0.0, 1.0); gl.enable(gl.DEPTH_TEST); gl.depthFunc(gl.LEQUAL); gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT);
39 WebGL
41 WebGL. Вектор атаки
42 Поддержка WebGL
43 Библиотеки SpiderGL Three.js PhiloGL GLGE
44 SVG SVG (масштабируемая векторная графика) XML-подобный язык для визуального описания векторной графики
45 SVG Разрабатывается W3C с 1999 года В основу легли языки разметки VML (Microsoft) и PGML (Adobe, IBM)VMLPGML Особенности: – декларативный – векторный масштабируется – текстовый доступен * – поддерживает CSS, обработку событий и анимацию
46 SVG и Canvas. Область применения
47 Поддержка SVG
48 SVG. Пример
49 Возможности SVG Описание путей (path) – M (англ. moveto переместить) – L (англ. lineto нарисовать линию) – отрезки прямых (H, V), кривые Безье (C, S, Q, T) и дуги (A) Примитивы (многоугольники, окружности и т. п.) Визуальные свойства (окраска, прозрачность, скругление углов и т. д)
50 Возможности SVG Интерактивность. На каждый элемент можно повесить обработчик событий Анимация – реализована с помощью языка SMIL или CSS TransformSMIL – пример: спиннер, гипножабаспиннергипножаба Скрипты. SVG имеет ту же DOM – пример: Inbox AttackInbox Attack
51 Ссылки Raphaël - Swiffy (SWF to HTML5) - wiffy/ wiffy/
52 HTML5 video HTML5 video элемент, включённый в проект спецификации HTML 5, который используется для воспроизведения видеозаписей element.html element.html
53 HTML5 video (audio) Не нужно никаких дополнительных кодеков, установленных программ или кода Набор воспроизводимых форматов ограничен Спецификация не предоставляет описания, как должны выглядеть элементы управления
54 Поддержка HTML5 video
55 HTML5 video. Использование
56 Видео-форматы Ogg Theora – открытый, разработан Xiph.Org H.264 – лицензируемый стандарт, патентные отчисления за использование, эффективнее по соотношению качество/битрейт WebM (VP8)– открытый, разработан Google
57 Поддержка форматов видео ogg/theora++-+- H WebM++-+-
58 Поддержка форматов аудио ogg/vorbis++-+- mp wav++-++ AAC+-+-+
59 HTML5 Video Атрибуты: – poster – height/width – loop – preload Методы управления – load() – canPlayType() – play() – pause() – addTrack()
60 Пример var audio = document.getElementsByTagName('audio')[0]; var play = document.getElementsByClassName('play')[0]; play.addEventListener('click',function(e){ var t = e.target; if (audio.paused) { audio.play(); t.innerHTML = 'pause'; } else { audio.pause(); t.innerHTML = 'play'; } e.preventDefault(); });
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.