一个简单的网络应用——面部拍照软件

   这是在ETI的第3个工作——给一个政府卫生署的公众殓房做一个给尸体面部拍照的软件,用于家属辨认。

需求:对尸体的面部拍照,并保存在指定的位置。

分析:设计一个直观简捷的操作页面,分为:摄像头显示画面,摄像头角度控制,拍照按钮三个方面。

            由于选择使用的摄像头为AXISP5510型号,自带可访问的服务器,提供编程操作的借口,所以可直接使用API抓取摄像的图像和对摄像头进行控制。于是,采用简单Java的Applet+Html 的结构。Applet;运行于本机的JAVA环境JRE中,用于拍照时读取拍照的数据,存入指定的位置。Html:显示软件的操作界面。

过程:1·搭建Tomcat环境,创建一个webapps的应用,对web.xml配置,放入.html文件和jar包,及applet的java编译的class文件。

            2 为了使html中的Applet具有写文件的权限和与摄像头的IP相连接等权限,虽然从安全的角度上讲,软件带有一定的安全漏洞,但考虑到该软件是用于局域网内部,可以接受。

           3  完成后在office进行简单的测试,提出了一个需求变动,就是图像文件存储位置的变动,html没法提供提供能,于是使用APPlet+JSP结构。测试时,出现问题主要有两个:1 存储照片时,写入的总是一个缓存中得图像,不是实时拍照的图像;2 在浏览器中传入的中文,在页面显示为乱码。

            4 解决问题1:在本机的java环境中,取消keep temporay files on my computer .

               解决问题2:设置Tomcat的server.xml将8080端口的ERL的编码设置为“ERIEncoding=“UTF-8””;在浏览器传入name的参数时,我们传入的是中文的UTF-8的编码。

此时,软件测试完成,将在实地进行安装测试。实际软件运行的环境相对于office有些不同:JRE1.5+JBoss应用服务器。之后按照客户的要求,修改了某些软件的显示页面,并增加了照片在存储时提示存储过程的模块。

但是在用户试用阶段,又一个问题出现了,在实际应用的时候用的时候,照片存储在网络存储设备上,所以用软件存储照片比直接用摄像头自带的程序存储时间对比:

Network drive P for  Capture Software: 5s
Network drive P for own drive : 15-17s

Local drive C for old Capture Software: 1s
Local drive C for new drive: 11-13s
用户不能接受这样的时间差,于是需要对软件进行该进。

仔细检查,问题的原因在于若是用服务器的localhost:8080访问,会出现上诉问题,若是直接用127.0.0.1/<服务器IP>的话,存储时间与自带程序运行时间相差不大。反复思量,再请教于同事,发现这是一个Java自带的Bug引起的问题,若将JDK升级到30版本,问题不存在了。我们在用Applet存储照片的时候,Applet与服务器连接的时候,由于使用的是域名,java在连接了服务器ip地址后,不知道去哪里找到camera这个确定的地址,于是就很慢。于是,在本机的hosts中,增加camera的ip。 “ 

OK,完成!

经过接下来的两周试用,软件运行良好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值