HTML
JavaScript
canvas
WebRTC
動画

HTML,Webカメラで残像パンチを打ってみた

パンチ.gif


やり方

Webカメラをブラウザ上に表示



CanvasにWebカメラの画像を書き出す

書き出す時の透明度を0.5に設定



setInterval で繰り返し

<body>

残像
<canvas id="canvas" width="400" height="300" style="border: solid 1px"></canvas>
元動画
<video id="camera" width="400" height="300" autoplay="1" class="camera" style="border: solid 1px"></video>

<script type="text/javascript">
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || window.navigator.mozGetUserMedia;
window.URL = window.URL || window.webkitURL;

var video = document.getElementById('camera');
var localStream = null;
navigator.getUserMedia({video: true, audio: false},
function(stream) { // for success case
console.log(stream);
video.src = window.URL.createObjectURL(stream);
localStream = stream;
},
function(err) { // for error case
console.log(err);
}
);

//canvasに描画権利を与える
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var img = document.getElementById('img');

//videoの縦幅横幅を取得
var w = video.offsetWidth;
var h = video.offsetHeight;

//同じサイズをcanvasに指定
canvas.setAttribute("width", w);
canvas.setAttribute("height", h);

var record = function(){
//canvasにvideoタグ画像をコピー
ctx.globalAlpha = 0.5;
ctx.drawImage(video, 0, 0, w, h);
}

setInterval(function(){
record();
},100);
</script>
</body>


参考URL

カメラを使ってみよう ーWebRTC入門2016

https://html5experts.jp/mganeko/19728/