-
Notifications
You must be signed in to change notification settings - Fork 2
/
webcam.html
56 lines (49 loc) · 1.66 KB
/
webcam.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Face-find-fun</title>
<style>
html,button{font-family:sans-serif; font-size:15px;}
body{height:100%; background:black;}
button{display:block;}
</style>
</head>
<body>
<!-- HTML5 video element and autoplay -->
<video id="inputVideo" autoplay></video>
<button id="btn"> Fun </button>
<script type="text/javascript">
(function() {
/* Cross-browser window.URL */
window.URL = window.URL || window.webkitURL;
/* Feature detection of navigator.getUserMedia */
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
/* Grab video element */
var video = document.getElementById("inputVideo");
/* Feed video src a Blob URL obtained from a LocalMediaStream object representing the webcam */
if (navigator.getUserMedia) {
navigator.getUserMedia({video: true},
function(stream) { //success callback
video.src = window.URL.createObjectURL(stream);
},
function(err) { // error callback
console.log("The following error occured: " + err);
}
);
}
document.getElementById("btn").onclick = changeFilter();
function changeFilter() {
var i = 0, filters = ["grayscale()", "hue-rotate(180deg)", "sepia(100%)",
"saturate(500%)", "blur(5px)", "invert()", "normal"];
return function() {
i = i % filters.length;
video.setAttribute("style","-webkit-filter:" + filters[i++]);
}
}
})();
</script>
</body>
</html>