通过覆盖默认相机来增强拍照HTML5
Enhance picture taking HTML5 by overriding default camera
我在HTML5 Web应用程序中使用来自相机的输入,例如:
<input type="file" accept="image/*" capture="camera">
但我想知道是否有办法(即JQuery Mobile)来改善拍照过程。例如,在相机视图上放置一层,以检测视角是否最佳,图片主体和智能手机之间是否没有障碍物等等。
我不是在谈论算法等编码的难度,但我想知道是否可以仅使用 Javascript 覆盖"系统功能"(例如相机)并增强简单的相机视图(仅使用"拍照"按钮和基本功能)。
我的第一个虽然不,但它需要一个具有拍照所需权限的移动应用程序(而不是网络应用程序)。我还认为,允许Javascript交互和更改系统功能将是一个安全漏洞。
但我不是 100% 确定,有人可以确认吗?
谢谢!
我认为你不能覆盖系统功能,但是你可以让你的相机显示在画布元素中,这可以让你做各种"画布"的事情,比如将图像流式传输到服务器或使其灰度等。
这只是拿了一些我弄乱的代码:
.HTML
<video id="myvideo" controls></video>
<canvas id="mycanvas"></canvas>
.JS
var isStreaming = false,
video = $('#myvideo')[0],
canvas = $('#mycanvas')[0],
ctx = canvas.getContext('2d'),
w = 800,
h = 400;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
$(window).load(function() {
if (navigator.getUserMedia) {
navigator.getUserMedia({video: true, audio: true}, function(stream) {
var url = window.URL || window.webkitURL;
var src = url ? url.createObjectURL(stream) : stream;
video.src = src
video.play();
}, function(error) {
alert('Error: ' + error);
return;
});
} else {
alert('not supported in your browser');
}
});
video.addEventListener('canplay', function(e) {
if (!isStreaming) {
// videoWidth isn't always set correctly in all browsers
if (video.videoWidth > 0) h = video.videoHeight / (video.videoWidth / w);
canvas.setAttribute('width', w);
canvas.setAttribute('height', h);
// Reverse the canvas image
//ctx.translate(w, 0);
//ctx.scale(-1, 1);
isStreaming = true;
}
}, false);
video.addEventListener('play', function() {
// Every 33 milliseconds copy the video image to the canvas
setInterval(function() {
if (video.paused || video.ended) return;
ctx.fillRect(0, 0, w, h);
ctx.drawImage(video, 0, 0, w, h);
}, 33);
}, false);
这只是将相机流式传输到画布中。希望对:)有所帮助
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- HTML5音频加载和播放获胜'我不能在iPad上工作
- HTML5页面底部棒
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- Is onfling available for html, html5
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 安卓平台上的QWebView HTML5地理位置
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 如何检查用户在html5视频播放器中观看了完整的视频
- 使用具有内联样式的tidy-html5
- 从所有元素中删除HTML5验证
- javascript:将数据库中的数据插入到html5文本字段中
- html5视频中的Youtube类型注释
- JavaScript HTML5画布未显示
- 是否可以为HTML5输入滑块触发oninput事件
- 如何使用HTML5与UDP套接字通信
- 通过覆盖默认相机来增强拍照HTML5
- HTML5画布性能增强
- 如何在支持渐进式增强(Progressive Enhancement)的同时,使用HTML5标签来支持无脚本客户端,这些