ASP.NET实现二维码(QRCode)的创建和读取实例
本文实例讲述了ASP.NET实现二维码(QRCode)的创建和读取方法。分享给大家供大家参考。具体分析如下:
概述:
QR二维码比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势。QR码的三个角上有三个寻象图形,使用CCD识读设备来探测码的位置、大小、倾斜角度、并加以解码,实现360读高速识读。每秒可以识读30个含有100个字符QR码。QR码容量密度大,可以放入1817个汉字、7089个数字、4200个英文字母。QR码用数据压缩方式表示汉字,仅用13bit即可表示一个汉字,比其他二维条码表示汉字的效率提高了20%。QR具有4个等级的纠错功能,即使破损或破损也能够正确识读。QR码抗弯曲的性能强,通过QR码中的每隔一定的间隔配置有校正图形,从码的外形来求得推测校正图形中心点与实际校正图形中心点的误差来修正各个模快的中心距离,即使将QR码贴在弯曲的物品上也能够快速识读。QR码可以分割成16个QR码,可以一次性识读数个分割码,适应于印刷面积有限及细长空间印刷的需要。此外微型QR码可以在1厘米的空间内放入35个数字或9个汉字或21个英文字母,适合对小型电路板对ID号码进行采集的需要。
QRCode点击此处本站下载(支持中文)
一、项目引用QRCode的DLL文件(ThoughtWorks.QRCode.dll)
二、ASPX页面(两个jquery的js文件请自行去官网下载):
<htmlxmlns="http://www.w3.org/1999/xhtml"> <headrunat="server"> <title>二维码工具测试</title> <scripttype="text/javascript"src="../../Scripts/Jquery/jquery-1.6.2.js"></script> <scripttype="text/javascript"src="../../Scripts/Jquery/jquery.form.js"></script> <scripttype="text/javascript"src="js/test.js"></script> <styletype="text/css"> .style1 { width:100%; } #txt_qr { width:632px; } </style> </head> <body> <div> <tableclass="style1"> <tr> <td> 输入文字: </td> <td> <inputtype="text"id="txt_qr"name="txt_qr"/> </td> </tr> <tr> <td> 二维码图片 </td> <td> <imgid="qrimg"alt="二维码图片"/> </td> </tr> <tr> <td> 生成选项 </td> <td> Encoding:<selectid="Encoding"> <optionvalue="Byte">Byte</option> <optionvalue="AlphaNumeric">AlphaNumeric</option> <optionvalue="Numeric">Numeric</option> </select> CorrectionLevel:<selectid="Level"> <optionvalue="M">M</option> <optionvalue="L">L</option> <optionvalue="Q">Q</option> <optionvalue="H">H</option> </select> Version:<inputid="txt_ver"type="text"value="7"/>(1-40)Size:<inputid="txt_size" type="text"value="4"/> </td> </tr> <tr> <tdcolspan="4"> <inputtype="button"onclick="getQrImg();"value="生成二维码"/> </td> </tr> <tr> <td> <formid="qrForm"action="Ashx/test.ashx"method="post"enctype="multipart/form-data"> <inputtype="file"id="file_qr"name="file_qr"/><inputtype="submit"value="读取二维码"/> </form> </td> <tdcolspan="1"> <imgid="img_qr"alt="要读取的图片"/><br/> <inputid="txt_readqr"type="text"/> </td> </tr> </table> </div> </body> </html>
三、test.js文件
$(document).ready(function() { varoptions={ beforeSubmit:showRequest, success:showResponse, dataType:'json', clearForm:true, error:function(request,message,ex) { alert('错误:'+message); } }; $('#qrForm').ajaxForm(options); }); functionshowRequest(formData,jqForm,options) { returntrue; } functionshowResponse(responseText,statusText,xhr,$form) { if(responseText[0].count==0) { alert(responseText[0].list[0].error); returnfalse; } $("#img_qr").attr("src",responseText[0].list[0].imgurl); $("#txt_readqr").val(responseText[0].list[0].qrtext); returnfalse;
} functiongetQrImg() { vartxt_qr=escape($.trim($("#txt_qr").val())); varqrEncoding=$("#Encoding").val();; varLevel=$("#Level").val();; vartxt_ver=$("#txt_ver").val();; vartxt_size=$("#txt_size").val();; $.ajax({ type:"GET", data:"cmd=set&txt_qr="+txt_qr+"&qrEncoding="+qrEncoding+"&Level="+Level+"&txt_ver="+txt_ver+"&txt_size="+txt_size, url:"Ashx/test.ashx", dataType:'text', beforeSend:function(x) { x.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=utf-8"); }, success:function(json) { vardataObj=eval(json); $("#qrimg").attr("src",dataObj[0].list[0].imgurl); returnfalse; }, error:function(request,message,ex) { alert("错误:"+message); } }); }