[php]代码库html5概念啥的就不废话了,不知道的 百度, 谷歌一堆。。今天学了学html5中的Canvas结合新增的标签来获取本地摄像头,在html5之前,要在浏览器获取本地摄像头只有通过插件(ActiveX,但是这种只有IE支持)或者是flash来获取(或许你没学过flash那就很坑爹了),在之后微软的silvertlight中也可以获取,但这些都比较麻烦,在html5的世界里,要获取本地摄像头,只要配合js就可以轻松获取。。
目前支持html5的浏览器(参考http://www.cnblogs.com/jerry_cong/archive/2011/05/15/2047143.html)
看看主要代码吧:
这个是前台HTML的代码。
下面这个是主要代码了。(jquery)
最后的就是接收经过base64编码之后的图像文件了。
public void ProcessRequest (HttpContext context) { string img;//接收经过base64编 之后的字符串 context.Response.ContentType = "text/plain"; try { img =context.Request["img"].ToString();//获取base64字符串 byte[] imgBytes = Convert.FromBase64String(img);//将base64字符串转换为字节数组 System.IO.Stream stream = new System.IO.MemoryStream(imgBytes);//将字节数组转换为字节流 //将流转回Image,用于将PNG 式照片转为jpg,压缩体积以便保存。 System.Drawing.Image imgae = System.Drawing.Image.FromStream(stream); imgae.Save(context.Server.MapPath("~/Test/") + Guid.NewGuid().ToString()+".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//保存图片 context.Response.Write("OK");//输出调用结果 } catch (Exception msg) { img = null; context.Response.Write(msg); return; } }
至此B/S通过本地摄像头拍照上传就完成了。HTML5的强大之处,爱不释手了。。。不在像以前需要写一堆烦人的东东了,而且你也可以不用去学flash...
额外说一句,如果您还在用IE6\IE7那您还是别玩html5了...
#html5 #摄像头 #拍照上传 #canvas