![基于bs结构的图片自动向ii移除的研究_第1页](http://file4.renrendoc.com/view/214a9a9df808a7eefaf32bd0a910223a/214a9a9df808a7eefaf32bd0a910223a1.gif)
![基于bs结构的图片自动向ii移除的研究_第2页](http://file4.renrendoc.com/view/214a9a9df808a7eefaf32bd0a910223a/214a9a9df808a7eefaf32bd0a910223a2.gif)
![基于bs结构的图片自动向ii移除的研究_第3页](http://file4.renrendoc.com/view/214a9a9df808a7eefaf32bd0a910223a/214a9a9df808a7eefaf32bd0a910223a3.gif)
![基于bs结构的图片自动向ii移除的研究_第4页](http://file4.renrendoc.com/view/214a9a9df808a7eefaf32bd0a910223a/214a9a9df808a7eefaf32bd0a910223a4.gif)
![基于bs结构的图片自动向ii移除的研究_第5页](http://file4.renrendoc.com/view/214a9a9df808a7eefaf32bd0a910223a/214a9a9df808a7eefaf32bd0a910223a5.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于bs结构的图片自动向ii移除的研究
iphone4s有一个非常实用的新功能。也就是说,摄影完成后,它会自动传播到nit。其他移动设备,例如iada,可以在首次上传的图像中共享。这个功能实际上可以分解为几个关键技术,分别是拍摄、本地存储、自动上传到互联网。随着云计算的流行,图片的以云存储的方式分享将逐渐成为趋势,不仅仅是个人应用,就是企业商业领域,也需要类似功能,不过商业领域用的不是摄像头,而是扫描仪。近几年,实名制消费已经在许多行业大行其道,一方面,因为政府有要求,比如:网吧要求必须18岁以上公民持有身份证进吧消费,公安局要求入住酒店旅客必须进行实名登记等;另一方面,商家为了锁定长期顾客而实行的会员制消费,比如:餐饮、酒店、美容美发、超市等行业,都争相实行会员制消费,会员自然都是记名的,会员多了,必须要有会员管理软件,抑或行业管理软件中自带会员管理功能来进行管理。在Web2.0时代,在云计算时代,B/S结构会员、客房、餐饮软件将会获得更多的市场机会,但是第一个要解决的技术难题便是如标题“B/S结构如何实现身份证扫描和自动上传照片”。1b/s模式功能复杂周服公司是一家专业开发B/S结构会员管理软件,客户关系管理软件,酒店客房管理软件,餐饮娱乐管理软件的公司,最近需要通过身份证扫描录入的方式加快数据的录入的客户越来越多。客户的需求很明确,首先必须实现身份扫描仪或者阅读器的接口,然后读取用户基础信息,例如:姓名、性别、年龄、住址、生日,除此以外,还要扫描并截取照片信息,并上传到服务器上去保存。如果是C/S结构,这个需求则比较好实现,但是B/S结构就要复杂一些,特别是照片的自动上传。每次客户端扫描完成,用户的照片信息是保存在本地的,浏览器必须知道照片保存在哪里,然后才能上传到服务器上去,因为安全性原因,现在客户端上传图片必须要人工选择一下,然后点击“上传”按钮才行。但是如果用在B/S结构酒店餐饮会员管理软件中,就行不通,为什么?致命的问题有两点:第一,会降低录入速度;第二,增加操作难度。试想一下,操作员点了一下“身份证扫描”按钮,扫描仪将身份证扫描识别后的信息保存在本地指定文件夹中,然后操作员点击“选择照片”按钮,在弹出对话框中去选择照片,然后眼花缭乱的在一堆照片中甄别哪个是刚刚扫描的客户…….不说这个流程的步骤有多繁琐,关键是当照片过多,都存放在一个文件夹下,选择照片本身就是一件极其困难的工作,因为复杂,便大大增加了出错几率。所以如果不能自动上传图片,仅仅简单实现身份证扫描接口,对于B/S结构的酒店餐饮会员管理软件来说几乎成了鸡肋,“弃之可惜,用之无味”。完美的方案是,点一下“身份证扫描”按钮,剩下的全部教给电脑完成,包括如下功能:扫描身份证并识别-->在本地保存身份信息-->获取图片并上传到服务器-->将身份信息和照片在服务器上的路径保存到数据库-->返回识别成功提示。2b/s模式正确编写平台接口完美的解决方案目的是客户使用方便,技术人员实现起来就稍微有些复杂,这里面要用到多种语言和技术,不过基本解决思路还是比较清楚的。第一步,选择识别硬件。要实现身份证扫描识别,自己去写一个智能识别程序不现实,只能选择与已有的硬件接口。目前有两种方案:第一种,用身份证扫描仪,这种扫描仪有A6纸张大,可以扫描一代证,二代证,驾照等。第二种,用第二代身份证阅读器,这是一种类似ID卡读卡器的设备。因为二代证本身就是一张有存储功能的ID卡,所以像读卡一样读出身份证信息即可。第二步,编写客户端程序。选择好了硬件,便需要编写与硬件的接口程序,B/S结构做硬件接口,首当其冲就是编写ActiveX控件。当然,仅仅是ActiveX控件解决不了所有问题,还需要Web页面程序配合。第三步,编写服务器端程序。客户端程序写完了,就要写服务器端接收程序,将客户端传递过来的身份证信息保存到数据库中,将照片文件另存为到服务器指定的地方。这3个步骤,缺一不可,特别是后两步,实现起来需要一定的技术功底。3促进平台开发的促进具体选择哪个商家的身份证扫描仪,软件开发商可以自行决定,定好供应商后,就可以跟他们联系要开发接口,虽然供应商非常乐意效劳,但是因为市面上都是C/S结构软件居多,所以供应商一般不提供现成的ActiveX控件,因此,B/S软件厂商的程序员只能自己编写。如何编写ActiveX控件网上的例子已经有很多,限于篇幅,这里不再赘述,需要特别提醒的关键的问题只有一点,技术人员一定要考虑一点市场行为。什么意思?就是在软件实际销售过程中,销售人员往往很难指定硬件厂商,这意味着在开发过程中,可能先跟一个厂商接口,以后销售过程中则必须做好跟多种扫描仪或阅读器进行接口的准备,有可能随时需要修改程序,添加新的接口。所以程序设计人员一定要重视这一点,同时在ActiveX控件编写过程中,一定要做得有扩展性。相信只要跟硬件厂商沟通清楚,仔细阅读开发文档,都可以成功编写这个ActiveX控件了,路是一步步自己走出来的,代码是一点点自己写出来的,积极尝试一下,没有想象中那么困难。下面列出一个Delphi的ActiveX代码,供读者朋友参考:请注意代码中的黑体部分,定义了一个read方法,这个方法是用JavaScript调用的,他会返回一个字符串,包含了姓名、性别、年龄、住址等信息,并用分隔符进行分割。这样,第一步就走完了,意味着控件做完了,接下来就要打包,公司一般要求包的名字必须用公司的域名做前缀,所以只能叫做chofo_id.cab,配置文件叫做chofo_id.nif。这里为什么要强调命名呢?因为下一小节中,HTML和JS程序就要通过配置文件chofo_id.nif的名字调用这个ActiveX控件。4扫描身份证的实现HTML代码和JS程序调用ActiveX控件一般要经过以下3个步骤:第一步,定义ActiveX组件。注意这断代码的粗体字chofo_id.inf,跟上一小节的一样。注意,这里的粗体自chofoID,要在第三步调用。第二步,建立表单,保存身份信息,同时定义个按钮,来调用JavaScript方法,执行扫描。第三步,需要写一个JavaScript方法,来调用ActiveX控件里面的方法来识别身份证,这个方法就是第二步中的粗体字read()。看明白了吗?read方法的功能是:从ActiveX的read方法中获得身份证信息的长字符串,然后分割成独立的姓名,性别、年龄、住址、生日信息,并给文本框赋值。这个3个步骤做完,一个迷你的身份证少扫描调用程序就完成了。做到这里,大家可以发现,已经实现了B/S结构身份证扫描功能,点击“扫描身份证”按钮,就可以获得身份证信息了,用Windows资源管理器也可以在文件夹中看到照片了,美中不足的是,因为没有实现照片的自动上传,所以,客户端还不能通过页面看到照片。下面着手解决这个问题。5文件上传的转换要实现图片的自动上传,首先要明白图片的上传原理,简单地说,就是二进制流的方式进行上传,限于篇幅详细原理读者还是去网上搜索一下。如果编写一个二进制流的文件传输代码,并不是难事,难的是,必须使用Form表单的方式进行传输。Form表单有一个enctype属性,默认情况,enctype的值是application/x-www-form-urlencoded,此时不能用于文件上传,只有将其值定义成multipart/form-data,才能上传文件,可是当上传文件时,因为是二进制流传输,又不能同时上传文字。什么意思?用传统的方法,不能同时将姓名、性别、年龄、住址、生日信息和照片信息同时传输。怎么办?唯一的办法就是:“转换”!现在应该来打开潘多拉魔盒,看看如何实行吧,详细思路如下:第一步,先在ActiveX控件中编写一段转换代码,将图片文件的二进制编码字符串转换为十六进制编码的字符串。第二步,将转换后的十六进制字符串,传输给JavaScript方法,JavaScript方法再给HTML的hidden变量赋值,保存到表单中。第三步,表单提交后,服务器端程序将收到的以十六进制字符串变量转换成二进制字符串。第四步,以二进制流的方式保存图片文件。思路非常清楚,下面赶紧来看看代码如何实现的吧。6六进制后返回首先写一个Delphi的方法,将二进制转换成十六进制。这个方法接收一个二进制的字符串,将其转换成十六进制后返回。第二步,要更改一下前面第3小节的代码,在后面加上photo字符串,注意代码中黑体部分。这样JavaScript就可以调用了。到此为之,ActiveX控件代码全部完成了,这个控件既可以扫描身份证,又可以将照片信息转换成字符串返回,方便JS调用了。7客户端声明和js代码另外,需要修改第4小节的代码,加入column_gt_photo变量,注意代码中的黑体部分。8使用其他语言进行转换客户端代码完成了,下面轮到服务器接收了,按照第5小节的思路,至少需要两个方法。第一个方法:convertToByte方法,将十六进制转换成二进制,代码如下,需要注意的是这一段反向转换代码和delphi的大相径庭啊,所以在用不同的语言合作解决一个事务时,因为语法函数等的不同,往往要使用不同的思路来编写代码。第二个方法:saveAsByte方法,用二进制流的方式保存图片。9b/s模式下的接口和接口问题文中给出的全部B/S结构身份证扫描上传的代码是最核心的代码,稍加修改也可以做成摄像头拍摄,读者此其基础上加上CSS样式、图片显示等功能,就可以做出一个非常实用的组件。上文同时也给出了一种新的解决问题的思路,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学二年级数学上册口算题
- 2024-2025年高中化学课时分层作业5元素的电负性及其变化规律含解析鲁科版选修3
- 西门子油烟机指导书
- 2025年年度尊重生命总结报告
- 二次消防改造工程合同范本
- 海南经贸职业技术学院《建筑构造Ⅰ》2023-2024学年第二学期期末试卷
- 福州科技职业技术学院《德语口译》2023-2024学年第二学期期末试卷
- 常州信息职业技术学院《中学语文课程与教学论》2023-2024学年第二学期期末试卷
- 宿迁学院《编译原理》2023-2024学年第二学期期末试卷
- 乌兰察布职业学院《建筑物理》2023-2024学年第二学期期末试卷
- 2024年度碳陶刹车盘分析报告
- 2025年1月 浙江首考英语试卷
- 十首最美的唐诗
- 2024年中考二轮专题复习道德与法治主观题答题技巧(小论文)之演讲稿
- 质检工作计划书2025质检部工作计划范文
- 《缠论的实战技法》课件
- 新版标准化机电专业管理体系解读课件
- 承包鱼塘维修施工合同范例
- 耶鲁综合抽动严重程度量表正式版
- 水利水电工程建设常见事故类型及典型事故分析(标准版)
- 政府采购项目采购需求调查指引文本
评论
0/150
提交评论