基于二维码扫描的电子照片下载系统
来源:用户上传
作者:杨亚仿
摘要:二維码技术已成功通过图像编码解码为网络URL地址提供了别名,即将网络地址转换为二维码图像。在义务拍摄证件照服务活动中,本系统基于此特性提供了使用二维码扫描方式下载获取电子照片的功能,提高了服务效率,有一定的参考应用价值。
关键词:二维码;电子照片下载
中图分类号:TE322;TP311 文献标识码:A
文章编号:1009-3044(2020)09-0208-02
1 引言
二维码又称二维条码,它是用某种特定的几何图形按一定规律在二维方向上分布的、黑白相间的、记录数据符号信息的图形;在代码编制时使用若干个与二进制相对应的几何形体来表示文字数值信息[1-4]。二维码在信息存储方面具有容量大(一个二维码可以存储多达7089个字节)、编码范围广(几乎支持所有类型的数据,如数字、英文、日文、汉字等)、容错能力强(对变脏和破损的适应能力强,且能从360度任意方向读取)、译码可靠性高、可加密、低成本等优点[5]。二维码的广泛应用体现了信息化技术的快捷方便,更是得力于信息化技术的强大支撑,尤其是图像识别技术的应用和移动终端的普及,为二维码的广泛使用提供了基本条件。二维码技术已大量应用于网站跳转、移动支付、电商推广、防伪溯源等各种应用信息系统中,其中很大一部分应用是用于提供网络访问接口,即网络地址,即便是移动支付、账号登录等,本质而言都是提供数据访问接口,信息的获取与流转处理实际上是依赖于信息化系统提供的强大功能。
域名通过DNS为IP地址提供了别名,即将网络访问地址转换为了便于记忆的文字字符,极大提高和普及了传统互联网的各种应用;二维码通过图像编码技术为URL地址提供了别名,即将网络访问地址转换为了二维码图像,大大推动和丰富了移动互联网的各种应用。
2 系统简介
为切实做好“不忘初心、牢记使命”主题教育,进一步弘扬志愿服务精神,为身边群众办实事好事,笔者所在党支部开展了义务拍摄证件照服务活动。活动原定的整体流程如下:工作人员为学校师生拍摄至少3张照片,师生排队按顺序选定照片,并登记好姓名与邮箱地址,由工作人员对该照片进行精修处理完成后,将成品登记照片发送到指定邮箱。
为了简化该流程,减轻工作人员的工作量,方便师生获取和下载最终的成品证件照,笔者开发设计了基于二维码扫描的电子照片下载系统,通过该系统,师生选定好照片后,由系统生成照片的二维码(即电子照片的下载链接),师生通过拍照保存好该二维码,当工作人员对该照片精修处理完成后将其上传到指定的链接地址后,师生即可通过扫描二维码,识别并跳转到指定的链接,从而下载最终的电子照片。
通过该系统,师生使用二维码扫描的方式即可下载最终的电子照片,解决了现场排长队的拥挤问题,大大简化了活动服务现场的登记手续,同时也降低了手工发送电子照片的错发、漏发概率,极大提高了服务效率,得到了师生的一致好评。该系统本质上是通过二维码技术封装了电子照片的下载链接,为师生用户提供了便利。
3 系统设计
该系统由窗体应用程序(.EXE程序)和Web网站两部分组成,使用.Net平台+C#4.0完成开发。窗体应用程序负责生成电子照片的二维码,Web网站负责提供下载服务。
窗体应用程序的界面如图1所示,用户可以通过单击“选择登记照”按钮,在弹出的文件浏览对话框中选定登记照,也可以通过鼠标拖拽的方式将电子照片拖动到“登记照”图片框中,如不满意,可以再次选择;选定登记照后,可通过单击“生成二维码”按钮,生成该登记照的二维码图像,在该图像中包含了下载链接,师生用户可通过拍照的方式保存好该二维码图片,当工作人员在Web网站中上传精修的电子照片后,师生用户即可通过扫描识别保存的二维码,完成电子照片的下载。
4 系统实现
本系统的Web网站部分较简单,使用IIS7.0搭建Web服务器,定义好网站的电子照片目录即可,另外须提前告知师生用户电子照片的下载截止日期。窗体应用程序的内容稍多,重要内容如下:
登记照图片框和二维码图片框均使用Winform的Picture-Box控件显示图像,其中登记照图片框定义了DragOver与Drag-Drop事件实现了使用鼠标拖拽方式将图片加载显示到Picture-Box控件中。
在“生成二维码”按钮的单击事件中,使用了开源控件ThoughtWorks.QRCode.DLL,该DLL是一个.NET组件,可用于二维码的编码和解码,本系统主要用到了QRCodeEncoder类的Encode函数进行二维码的编码。该函数已被重载,方法签名如下:
public virtual Bitmap Encode(string content);
public virtual Bitmap Encode(string content, Encodingencoding);
从方法签名中可以明确看出,通过该方法可以用指定的字符集将一个字符串编码为二维码图片。在本系统中要编码的字符串即为电子照片的下载地址,即一个URL地址字符串。
为了保证各电子照片的URL地址不重复,同时防止恶意用户通过猜测译码方式盗取下载电子照片,本系统中将URL地址分割为四部分组成:第1部分为URL前缀,在本系统测试期间为http://127.0.0. 1/FreePic/,在系统真正使用时将其更换为实际的URL前缀即可;第2部分由系统日期的年月日时分秒组成;第3部分为静态整型数据NumBegin转换为字符串,且该整数每次均自增1;第4部分由1000到9999之间的随机数组成;具体代码如下:
static int NumBegin= 10000;
public static string CreateUrl0 {
string strl=”http://127.0.0. 1/FreePic/”;
string str2=DateTime. Now. ToString(”VyyyMMd-dHHmmss”1:
NumBegin++; string str3= NumBegin.ToString0;
int seed= unchecked((int)(DateTime.Now.Ticks>>4));
Random r=new Random(seed);
string str4= r.Next(1000, 9999).ToString0;
retum String. Format(”{0)(1}(2}(3n strl, str2, str3,str4);
)
此外在活动服务现场中,该窗体应用程序可能会在多台计算机中运行,可以临时设置每个应用程序中的NumBegin初值,比如第一台计算机中,该系统的NumBegin初值为10000,在第二台计算机中可设置为20000,其余依此类推。
5 应用与总结
基于二维码扫描的电子照片下载系统在本次活动中应用良好,大大节省了师生的排队登记时间,丰富了电子照片的下载获取途径,体现了信息技术在平时工作中与生活中的应用。本系统的设计与实现思路也可用于与电子照片下载相关的其他应用中,如证件照打印工作室或旅游照片拍摄等,具有一定的参考应用价值。
参考文献:
[1]杨立峰,王曉敏,刘薇娜.基于二维码扫描的零件在线加工监控系统[Jl.机械工程师,2016(2):69-71.
[2]二维码一百度百科.https://baike.baidu.com/item/=维码.
[3]郑磊,辛壮,方志民,等.基于二维码扫描的旅行助手的设计与实现[J].黑龙江工程学院学报,2015,29(6):44-47.
[4]戴晓瑞.基于二维码物联网技术的物资采购跟踪系统设计与应用[J].数字技术与应用,2019(8):160-161.
[5] QRcode.com I DENSO WAVE. https://www.qrcode.com/zh/in-dex.html.
【通联编辑:梁书】
作者简介:杨亚仿(1984-),男,广西中医药大学现代教育技术与信息中心,硕士研究生,主要从事信息管理系统研发和校园网管理建设。
转载注明来源:https://www.xzbu.com/8/view-15209709.htm