C#如何用ThoughtWorks生成二维码
在现在的项目中,较多的使用到二维码,前面介绍过一篇使用Gma生成二维码的操作,现在介绍一个第三方组件,主要介绍生成二维码,二维码的解析,以及对二维码的相关信息的选择,现在介绍ThoughtWorks用于生成二维码,本随笔采用.net4.5和C#6.0语法,也可以进行查看ThoughtWorks的底层源码。
1.生成二维码:
//////生成二维码 /// ///带生成二维码的字符串 /// 路径 /// publicstaticstringCreatehoughtWorksQrCode(stringcontent,stringpath) { if(string.IsNullOrEmpty(content)) { thrownewArgumentNullException(content); } if(string.IsNullOrEmpty(path)) { thrownewArgumentNullException(path); } varqrCodeEncoder=newQRCodeEncoder { QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.BYTE, QRCodeScale=4, QRCodeVersion=8, QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.M }; Imageimage=qrCodeEncoder.Encode(content); varfilename=DateTime.Now.ToString("yyyymmddhhmmssfff")+".jpg"; varfilepath=string.Format("{0}{1}",path,filename); FileStreamfs=null; try { fs=newFileStream(filepath,FileMode.OpenOrCreate,FileAccess.Write); image.Save(fs,System.Drawing.Imaging.ImageFormat.Jpeg); } catch(IOExceptionex) { thrownewIOException(ex.Message); } finally { if(fs!=null)fs.Close(); image.Dispose(); } returnCodeDecoder(filepath); }
2.解析二维码:
//////二维码解码 /// ///图片路径 /// publicstaticstringCodeDecoder(stringfilePath) { if(string.IsNullOrEmpty(filePath)) { thrownewArgumentNullException(filePath); } try { if(!System.IO.File.Exists(filePath)) returnnull; varmyBitmap=newBitmap(Image.FromFile(filePath)); vardecoder=newQRCodeDecoder(); vardecodedString=decoder.decode(newQRCodeBitmapImage(myBitmap)); returndecodedString; } catch(Exceptionex) { thrownewException(ex.Message); } }
3.选择生成的二维码参数:
//////选择生成二维码的相关类型 /// publicvoidCreateCode_Choose(stringstrData,stringqrEncoding,stringlevel,intversion,intscale) { varqrCodeEncoder=newQRCodeEncoder(); varencoding=qrEncoding; switch(encoding) { case"Byte": qrCodeEncoder.QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.BYTE; break; case"AlphaNumeric": qrCodeEncoder.QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case"Numeric": qrCodeEncoder.QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.BYTE; break; } qrCodeEncoder.QRCodeScale=scale; qrCodeEncoder.QRCodeVersion=version; switch(level) { case"L": qrCodeEncoder.QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.L; break; case"M": qrCodeEncoder.QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.M; break; case"Q": qrCodeEncoder.QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.H; break; } Imageimage=null; FileStreamfs=null; try { //文字生成图片 image=qrCodeEncoder.Encode(strData); varfilename=DateTime.Now.ToString("yyyymmddhhmmssfff")+".jpg"; varfilepath=HttpContext.Current.Server.MapPath(@"~\Upload")+"\\"+filename; fs=newFileStream(filepath,FileMode.OpenOrCreate,FileAccess.Write); image.Save(fs,System.Drawing.Imaging.ImageFormat.Jpeg); } catch(IOExceptionex) { thrownewIOException(ex.Message); } finally { if(fs!=null)fs.Close(); if(image!=null)image.Dispose(); } }要生成的文字或者数字,支持中文。如:"4408810820深圳-广州"或者:4444444444 /// 三种尺寸:BYTE,ALPHA_NUMERIC,NUMERIC /// 大小:LMQH /// 版本:如8 /// 比例:如4 /// ///
以上就是C#如何用ThoughtWorks生成二维码的详细内容,更多关于c#生成二维码的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。