将Canvas图像作为文件流HTML5发送
Send Canvas images as a file stream HTML5
我正在开发一个系统,在浏览器中访问移动设备摄像头,并将摄像头流帧同步发送到另一侧。发送的帧在另一边被进一步处理。我已经将帧绘制到画布上,时间间隔如下代码所示。如何将访问的帧发送到另一侧,以便同步进行帧的进一步处理?画布上绘制的每个帧都将被发送到另一侧,以便在每个图像帧上进行进一步的处理。另一边的代码是母语。
$<!DOCTYPE html>
<html>
<h1>Simple web camera display demo</h1>
<body>
<video autoplay width="480" height="480" src=""></video>
<canvas width="600" height="480" style="" ></canvas>
<img src="" width="100" height="100" ></img>
<script type="text/javascript">
var video = document.getElementsByTagName('video')[0],
heading = document.getElementsByTagName('h1')[0];
if(navigator.getUserMedia) {
navigator.getUserMedia('video', successCallback, errorCallback);
function successCallback( stream ) {
video.src = stream;
}
function errorCallback( error ) {
heading.textContent =
"An error occurred: [CODE " + error.code + "]";
}
} else {
heading.textContent =
"Native web camera streaming is not supported in this browser!";
}
draw_interval = setInterval(function()
{
var canvas = document.querySelector('canvas');
var ctx = canvas.getContext('2d');
var frames = document.getElementById('frames');
ctx.drawImage(document.querySelector("video"), 0, 0);
}, 33)
</script>
</body>
</html>
我不太确定你说的"对方"answers"母语"是什么意思。
但是,您可以使用AJAX将画布图像发送到服务器。
服务器接收画布图像作为base64编码的图像数据。
例如,假设:
-
您将图像发送到php服务器(yourOtherSide.php),但当然,这可以是任何接受ajax帖子的服务器。
-
你有一个关于固定框架的画布元素的参考:画布
-
ajax负载包含要发送的帧的id号(id)和图像数据(imgData)。
-
(可选)您从服务器得到一些响应——即使只是"OK":anyReturnedStuff
那么您的ajax帖子将是:
$.post(“yourOtherSide.php”, { ID:yourFrame ID, imgData: canvas.toDataURL(‘image/jpeg’) })
.done( function(anyReturnedStuff){ console.log(anyReturnedStuff); } );
[编辑为包括从ajax帖子创建的服务器端图像]
这些代码示例将接收ajax base64 imageData,并创建一个图像供您使用c-image-processing库进行处理。
如果您使用的是PHP服务器:
$img = imagecreatefromstring(base64_decode($imageData));
// and process $img with your image library here
或者如果你使用的是asp.net:
byte[] byteArray = System.Convert.FromBase64String(imageData);
Image image;
using(MemoryStream s=new MemoryStream(byteArray){
image=Image.FromStream(ms);
// and process image with your image library here
}
相关文章:
- 通过phonegap中的电子邮件发送存储在html5 localStorage中的信息
- 当用HTML5+JS+PHP设计发送到电子邮件的表单时,需要采取哪些良好的安全预防措施
- HTML5服务器发送的事件不是实时的
- 如何在HTML5上创建发送整数的WebService客户端
- HTML5,CSS3,PHP联系人表单不发送信息+添加必填字段
- HTML5 →动态关联的服务器发送事件
- HTML5 音频元素发送 2 次 http get 请求
- 如何使用 HTML5 SSE 发送json_encode数据
- 从mobilejs/html5向服务器发送数据的最有效方式是什么,反之亦然
- HTML5 WebWorker 发送和接收号码
- Chrome HTML5<视频>请求-未发送Cookie
- JS-html5文件阅读器API-获取二进制字符串文件并通过ajax发送
- 如何在声明WebSocket HTML5上发送参数
- 通过HTML发布请求发送HTML5画布数据
- Cordova/Phonegap iOS - html5输入文本类型更改后,应用程序发送到后台
- HTML5会话存储发送到服务器
- 我可以通过HTML5向服务器发送静态图像吗?
- 设置HTML5服务器发送事件的时间间隔
- 将Canvas图像作为文件流HTML5发送
- 如何从html5发送一个隐藏的变量到JSF (xhtml)