jsp证件照实现代码
实现思路如下:
1.设置好拍照背景,如使用红布或者蓝布等等,白墙也可以。
2.选择高清的摄像头,如罗技等高清摄像头,支持的分辨率越高越好。
3.使用ImageCapOnWeb处理拍照。
4.调用控件的start方法开始获取摄像头视频
5.调用cap()方法拍照
6.调用selectRect方法选中头像区域,不满意的话可以手动微调。
7.调用cutSelected方法裁剪使用选中区域
8.保存拍照结果。
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>控件测试页面</title><script type="text/javascript">function startCam(){var capActivexObject=document.getElementById('cap1');//启动摄像头capActivexObject.start();}function capPicture1(){var capActivexObject=document.getElementById('cap1');capActivexObject.cap(); //控制摄像头拍照}function selectPic(){var capActivexObject=document.getElementById('cap1');capActivexObject.selectRect(0.3,0.25,0.6,0.8);//具体含义请查看文档}function cutSelectedPic(){var capActivexObject=document.getElementById('cap1');capActivexObject.cutSelected();}function submitToServer(){//读取控件的拍照结果到hidden输入项中var base64_data1 = document.getElementById('cap1').jpegBase64Data;if (base64_data1.length==0) {alert('请先拍照!');return false;}document.getElementById('picData1').value=base64_data1;document.getElementById('picExt1').value='.jpg';/*注意不同的服务器端技术要配置不同的接收数据的url,可以参考submit.html的示如asp.net的程序员可以查看submit.aspx,php程序员可以查看submit.php,asp程序员可以查看submit.asp*///document.forms[0].action="http://localhost:8080/pages/submit.jsp";alert('请先打开demo6.html配置服务器端程序参数再继续测试!');return false;document.forms[0].submit();}</script></head><body><form method="post" ><input type="hidden" id="picData1" name="picData1"/><input type="hidden" id="picExt1" name="picExt1"/><input type="hidden" id="picData2" name="picData2"/><input type="hidden" id="picExt2" name="picExt2"/><p><input type="button" value="启动摄像头" οnclick="javascript:startCam();" /><input type="button" value="拍照片" οnclick="javascript:capPicture1();" /><input type="button" value="选中头像区域" οnclick="javascript:selectPic();" /><input type="button" value="裁剪选中区域" οnclick="javascript:cutSelectedPic()" /><input type="button" value="提交到服务器端" οnclick="javascript:submitToServer();" /> <br/><input type="button" value="清除结果" οnclick="javascript:document.getElementById('cap1').clear();" /></p><object classid="clsid:34681DB3-58E6-4512-86F2-9477F1A9F3D8" id="cap1" width="640" height="480" codebase="../cabs/ImageCapOnWeb.cab#version=2,0,0,0"><param name="Visible" value="0"><param name="AutoScroll" value="0"><param name="AutoSize" value="0"><param name="AxBorderStyle" value="1"><param name="Caption" value="scaner"><param name="Color" value="4278190095"><param name="Font" value="宋体"><param name="KeyPreview" value="0"><param name="PixelsPerInch" value="96"><param name="PrintScale" value="1"><param name="Scaled" value="-1"><param name="DropTarget" value="0"><param name="HelpFile" value><param name="PopupMode" value="0"><param name="ScreenSnap" value="0"><param name="SnapBuffer" value="10"><param name="DockSite" value="0"><param name="DoubleBuffered" value="0"><param name="ParentDoubleBuffered" value="0"><param name="UseDockManager" value="0"><param name="Enabled" value="-1"><param name="AlignWithMargins" value="0"><param name="ParentCustomHint" value="-1"><param name="licenseMode" value="2"><param name="key1" value=""><param name="key2" value=""></object></form><script type="text/javascript">document.all.cap1.SwitchWatchOnly(); //切换到只显示摄像头画面形式,隐藏编辑按钮等图标.</script></body>
</html>
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*,java.io.*" errorPage="" %>
<%
String savePath=config.getServletContext().getRealPath("/")+"//";File tmp_path=new File(savePath);tmp_path.mkdirs();System.out.println("照片数据保存路径:"+savePath);String pic_base_64_data=request.getParameter("picData");//如果下面的代码输出true则说明需要调整服务器软件工作参数,解决接受post数据的大小限制问题,例如
//tomcat的话需要在server.xml中配置maxPostSize="0"来解除上传数据的大小限制 <Connector port="8080" protocol="HTTP/1.1"
// connectionTimeout="20000"
// redirectPort="8443" maxPostSize="0"/>
//
System.out.println(null==pic_base_64_data);System.out.println("base64 string length:"+pic_base_64_data.length());
String fileFormat=request.getParameter("picExt");
sun.misc.BASE64Decoder decode=new sun.misc.BASE64Decoder();byte[] datas=decode.decodeBuffer(pic_base_64_data);String filename=String.valueOf(System.currentTimeMillis())+fileFormat;
File file=new File(savePath+filename);
OutputStream fos=new FileOutputStream(file);
System.out.println("图片文件名称:"+filename);
fos.write(datas);
fos.close();out.print("<a href='" + request.getContextPath()+"/"+ filename + "'>click here</a>");
out.flush();
out.close();
%>
jsp证件照实现代码相关推荐
- java 页面 分离 实现_JavaBean实现JSP页面和代码分离
JavaBean实现JSP页面和代码分离以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JSP编程中 Struts一般 ...
- jsp中JAVA代码取select值_jsp获取下拉列表select选择的值 | 学步园
看下表单的内容: A B C D ----------------------------------------------------------------------------------- ...
- 为MyEclipse 9/10中的html/JSP编辑器添加代码自动提示
为MyEclipse 9/10中的html/JSP编辑器添加代码自动提示 2012年04月08日 ⁄ 开发工具 ⁄ 评论数 6 ⁄ 被围观 3,902 views+ 在myeclipse 9以前的版本 ...
- 关于jsp中java代码的使用;
jsp文件才能写java代码(写在script中),单纯的js文件是不可以的,比如还有el表达式这种,都是不能写在js文件中的 jsp中嵌入java代码可以有三种格式: 第一种:<%! 声明:% ...
- js中变量和jsp中java代码中变量互相访问解决方案
1.js变量获取jsp页面中java代码的变量值. 方法:var JS变量名 = <%=JAVA变量名 %> 2.java代码获取js变量的值. 说明:在JSP中:Java部分是在 ...
- eclipse jsp 写 js 代码提示_基于jsp+servlet的宠物管理系统
源码编号:B-E00002 点击查看分类规则 项目类型:Java EE项目(java web项目) 项目名称:基于jsp+servlet的宠物管理系统(Pet) 当前版本:V1.0.0版本 难度等级 ...
- 为什么jsp写script代码报错_JSP 报错:ReferenceError: $ is not defined
运行 SpringMVC 项目时,JSP 的代码报错: ReferenceError: $ is not defined JSP 相关代码如下: ... <script src="js ...
- js变量和java变量相等,js中变量和jsp中java代码中变量互相访问解决方案
1.js变量获取jsp页面中java代码的变量值. 方法:var JS变量名 = 我们常常会将js文件和jsp文件分开写,在js文件中,上面的方法似乎不管用了. 也可以通过变通的方法来解决: a.js ...
- jsp中java代码if_jsp中jstl标签的类似 if - else 语句 的语法
在jsp中引入jstl的标签库和函数库 1. jsp中传递参数,经过action,存储到request中 href="${pageContext.request.contextPath}/n ...
最新文章
- 写给工程师的十条精进原则
- Eclipse使用技巧 快捷键
- Python用拉格朗日法进行数据横向插值
- 为什么大家都在吹捧Python?
- 看完微软大神写的求平均值代码,我意识到自己还是 too young 了
- 迈克尔 杰克逊mv_用杰克逊流式传输大型JSON文件– RxJava常见问题解答
- springboot自动配置的原理_SpringBoot实战:详解SpringBoot自动配置原理
- 在Simulink中调整增益映射 Tune Gain Schedules in Simulink
- 需求变更,产品经理的良心也会痛!
- oracle clob 导出csv,在Apex把csv导入数据库Clob字段再导入到各自对应列的解决方法...
- ACER 4741G
- [乡土民间故事_徐苟三传奇]第廿九回_蠢财主落水知上当
- 批处理一键打开Windows远程桌面
- 【低功耗蓝牙BLE】连接事件和相关参数
- PLM的系统调研表分享
- 为什么说海尔智家是行业穿越寒冬的“模范生”?
- 操作系统 第一章习题
- 文件大小long转KB,MB,GB
- python-imutils包简介使用
- 2007年西北工业大学计算机专业