捕获单个网络摄像头帧.在PHP中使用
Capture single webcam frame. Use in PHP
是否有一种方法可以从用户网络摄像头捕获单个帧并将其传递到服务器端?
我尝试使用navigator.getUserMedia
,它允许我创建一个LocalMediaStream对象,我可以将其传递给视频元素,但似乎没有可以理解的方法来获得视频本身用于其他用途。
有人有什么想法吗?
这是一个比较复杂的任务。您需要将流中的数据放入video
元素,然后将其放入canvas
元素,这将允许您创建数据URL,然后将其转换为服务器端图像。(深吸一口气)
var stream, video, canvas, data;
navigator.getUserMedia({video: true}, function(s) {
stream = s;
});
video = document.createElement('video');
video.src = window.URL.createObjectURL(stream);
video.play();
canvas = document.createElement('canvas');
canvas.getContext('2d').drawImage(video, 0, 0, 240, 150);
data = canvas.toDataURL();
data
现在将是一个数据URL,看起来有点像这样:"data:image/png;base64,iVBORw0KGgoA...
(在末尾有更多的字符!)。然后可以使用AJAX将其发送到服务器。
许多语言都有从数据URL获取信息的方法。我从未使用过它,但PHP看起来特别好。您应该能够这样做:
$image = imagecreatefrompng(substr($data, 22));
,其中$data
是从浏览器发送的数据。注意,我还没有测试过这段PHP代码。
为了改善用户体验,你可以显示视频元素:这样用户就可以在拍摄时看到镜头。此外,您可以将drawImage
调用作为对事件的响应,例如用户单击按钮。还要注意的是,getUserMedia
函数还不是跨浏览器的,所以您可能需要做一些编辑才能使它在所有浏览器中工作。
相关文章:
- 使用 php/jquery 动态更新单个模态
- 什么 在单个页面上创建具有 php 多步骤的多个表单
- 使用PHP将png/svg导出为单个png文件
- 如何在php中获得对单个ajax请求的多个响应
- 我想在Iframe Javascript PHP的帮助下,将单个ajax上传器脚本转换为多个上传器
- 是否可以使用ajax加载单个php函数
- 单个输入框的2个值,并将第二个值存储在php中
- 根据先前的选择填充单个输入 - MYSQL PHP JS
- 在单个 PHP 文件上处理多个 ajax
- 如何将 javascript 值与 php 值组合到单个 JavaScript 变量中
- 如何迁移单个 (php||JavaScript||..)文件在生产中没有时间限制
- 在PHP中使用单个按钮从计算机上传图片
- 对单个 PHP 脚本的多个 AJAX 调用划分工作负载 = 服务器端多线程
- php javascript删除单个行
- 将多个文本框中的值添加到php中的单个文本框中
- php从querystring中删除单个变量值对
- Wordpress PHP下拉过滤器(2x)与单个Ajax请求
- 如何通过使用PHP,Angular.js和MySQL的单个用户提交在多行插入值
- 使用PHP 'Include'将多个页面链接到单个index.php页面
- 捕获单个网络摄像头帧.在PHP中使用