스트림을 프레임 단위로 가져올 수는 없지만 캔버스에 그리는 방식으로 일정한 간격 또는 일정하지 않은 간격으로 프레임을 가져올 수 있습니다. 같은 것 canvas
및 img
의 ID를 가정
: 물론
var ctx = canvas.getContext("2d");
canvas.width = img.width;
canvas.height = img.height;
(function loop() {
ctx.drawImage(img, 0, 0); // grab frame
// extract frame here if needed
requestAnimationFrame(function() {
requestAnimationFrame(loop); // updates per 1/30 fps
});
})();
, 루프가 필요로 할 때, 단순히 drawImage()
"요구에"전화가 필요하지 않습니다. 그런 다음 캔버스를 사용하여 텍스트 (타임 스탬프 등)를 추가하십시오.) 또는 어떤 이미지로 추출 : IE에서 지원되지 약간 빠른
var dataURL = canvas.toDataURL("image/jpeg", 0.75);
var img = new Image;
img.onload = function() {
// image ready
};
img.src = dataURL;
또는 메모리 친화적하지만, 비동기() :
canvas.toBlob(function(blob) {
var img = new Image;
img.onload = function() {
// image ready.
};
img.src = (URL || webkitURL).createObjectURL(blob);
}, "image/jpeg", 0.75);
당신이 추출 할 수 있습니다 캔버스에서 이미지/프레임을 반환하려면 Data-URI은 다음과 같습니다.
var uri = canvas.toDataURL("image/jpeg", 0.75);
출처
2016-06-19 01:04:06
K3N