所有分类
  • 所有分类
  • 后端开发
想用HTML5做照相软件?先学网页布局,再来玩JavaScript

想用HTML5做照相软件?先学网页布局,再来玩JavaScript

首先,我们看看HTML代码结构,当然,这部分的DOM内容应该是在用户允许使用其摄像头事件出发后,动态加载生成的。640X480的分辨率,如果采用JS动态生成,那么您是可以灵活控制分辨率的。另外,需要浏览器版本较新,并且支持HTML5的相关新

HTML代码结构

想用HTML5做个照相软件?先学点儿网页布局的代码!拍照前可得先问下别人是否愿意开启摄像头。然后就能从DOM里读取到相关信息。比如选个640×480的高清分辨率,还能使用JavaScript随时调整,想怎么拍就怎么拍!

HTML里面加点有趣的功能,比如看录像或者拍照啥的,这样用起来就更顺手。再说了,别忘了在HTML中加上JavaScript,这样写出来的代码简单明了,以后修改也容易得多!

JavaScript部分

搞定HTML后,咱们就来试试学点JavaScript!虽然有点挑战,但只要按部就班地学习,其实也不难。

用JavaScript的话,先得搞明白咋和摄像机玩儿,然后学会拍照和抓图那些事儿。其实,直接用浏览器的API或者找个第三方软件就好,就能把摄像机拍下来的东西展示出来了。处理图片的时候,还能加点特效什么的,甚至还能传到服务器上存着!

网页部署与兼容性

HTML和Javascript搞好了之后,要让网页开始运行,这时候要用到叫做http的东西来上传网页。这样我们的网页就可以下载并运行各种文件,包括脚本,同时也能保证数据的安全性!

浏览器能用吗?HTML5新出了点花样,不过每家用的版本不一样。别忘了查看你家浏览器是不是最新的,还得支持HTML5才能快快乐乐地玩儿拍照~

 
 
 
 

浏览器要求与测试环境

别急要想拍照开心,就要了解浏览器和测试环境的要求!试试最新的像Chrome这种现代浏览器调试下~

学编程就得多琢磨,多练手,要能应对各种问题哦!别怕失败,大胆试。学到新知识要记下,时间长了你的技能自然会提高!

完整代码示例

最后贴上一个完整的代码示例作为参考:

html
<title>TakePhotowithHTML5</title>
#video{
width:640px;
height:480px;
}
// 设置事件监听,DOM内容加载完成,和
jQuery
的$.ready() 效果差不多。 
window.addEvent
List
ener("DOMContentLoaded", function() { 
// canvas 元素将用于抓拍 
var canvas = 
document
.getElementById("canvas"), 
context = canvas.getContext("2d"), 
// video 元素,将用于接收并播放摄像头 的数据流 
video = document.getElementById("video"), 
videoObj = { "video": true }, 
// 一个出错的
回调函数
,在控制台打印出错信息 
errBack = function(error) { 
if
("
object
" === typeof window.console){ 
console.log("Video capture error: ", error.code); 
} 
}; 
// Put video listeners into place 
// 针对标准的浏览器 
if(navigator.getUserMedia) { // Standard 
navigator.getUserMedia(videoObj, function(stream) { 
video.src = stream; 
video.play(); 
}, errBack); 
} 
else
 if(navigator.webkitGetUserMedia) { // WebKit-prefixed 
navigator.webkitGetUserMedia(videoObj, function(stream){ 
video.src = window.webkitURL.createObjectURL(stream); 
video.play(); 
}, errBack); 
} 
// 对拍照
按钮
的事件监听 
document.getElementById("snap").addEventListener("click", function() { 
// 画到画布上 
context.drawImage(video, 0, 0, 640, 480); 
}); 
}, false);

SnapPhoto</button>
我们来找找那个叫‘视频’的元素,它就在文档里。

"canvas",就是那个网页上的画布,直接在<canvas>标签里找。
咱们来找找'snap'这个元素,它在文档的最下方。
constconstraints={
video:true
};
你要去用getUserMedia吗?就是这个,简单地说:navigator.mediaDevices.getUserMedia(设定好的条件)。
.then(function(stream){
video.srcObject=stream;
})
.catch(function(err){
console.log(err);
});
点击这个"打开"按钮,就会发生下面的事情。
直接把"画布"放进"2D图形环境",它叫context。
在画布左上角的地方,拍一下视频画面,弄成640x480就行!

 
 
 
 浏览器webcamera  
 
 
 
 
// 设置事件监听,DOM内容加载完成,和jQuery的$.ready() 效果差不多。 
window.addEventListener("DOMContentLoaded", function() { 
// canvas 元素将用于抓拍 
var canvas = document.getElementById("canvas"), 
context = canvas.getContext("2d"), 
// video 元素,将用于接收并播放摄像头 的数据流 
video = document.getElementById("video"), 
videoObj = { "video": true }, 
// 一个出错的回调函数,在控制台打印出错信息 
errBack = function(error) { 
if("object" === typeof window.console){ 
console.log("Video capture error: ", error.code); 
} 
}; 
// Put video listeners into place 
// 针对标准的浏览器 
if(navigator.getUserMedia) { // Standard 
navigator.getUserMedia(videoObj, function(stream) { 
video.src = stream; 
video.play(); 
}, errBack); 
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed 
navigator.webkitGetUserMedia(videoObj, function(stream){ 
video.src = window.webkitURL.createObjectURL(stream); 
video.play(); 
}, errBack); 
} 
// 对拍照按钮的事件监听 
document.getElementById("snap").addEventListener("click", function() { 
// 画到画布上 
context.drawImage(video, 0, 0, 640, 480); 
}); 
}, false); 
 
 
 

原文链接:https://www.icz.com/technicalinformation/web/2024/04/15536.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?