c#用ThoughtWorks生成二维码的方法

  介绍

小编给大家分享一下c#用ThoughtWorks生成二维码的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

,,,,,,在现在的项目中,较多的使用到二维码,前面介绍过一篇使用Gma生成二维码的操作,现在介绍一个第三方组件,主要介绍生成二维码,二维码的解析,以及对二维码的相关信息的选择,现在介绍ThoughtWorks用于生成二维码,本随笔采用.net4.5和c# 6.0语法,也可以进行查看ThoughtWorks的底层源码。

<强> 1。生成二维码:

///& lt; summary>///生成二维码///& lt;/summary>///& lt;参数name=癱ontent"在带生成二维码的字符串& lt;/param>///& lt;参数name=皃ath"在路径& lt;/param>///& lt; returns> & lt;/returns>
  CreatehoughtWorksQrCode公共静态字符串(字符串内容,字符串路径)
  {
  如果(string.IsNullOrEmpty(内容))
  {
  把新ArgumentNullException(内容);
  }
  如果(string.IsNullOrEmpty(路径))
  {
  把新ArgumentNullException(路径);
  }
  新qrCodeEncoder var qrCodeEncoder={
  QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.BYTE,
  QRCodeScale=4,
  QRCodeVersion=8,
  QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.M
  };
  图像图像=qrCodeEncoder.Encode(内容);
  var=DateTime.Now.ToString文件名(“yyyymmddhhmmssfff") +“.jpg";
  var filepath=string.Format(“{0}{1}“,路径,文件名);
  文件流fs=零;
  试一试
  {
  fs=新文件流(filepath FileMode。OpenOrCreate FileAccess.Write);
  的形象。保存(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
  }
  抓住(IOException)交货
  {
  把新IOException (ex.Message);
  }
  最后
  {
  如果(fs !=null) fs.Close ();
  image.Dispose ();
  }
  返回CodeDecoder (filepath);
  }

<强> 2。解析二维码:

///& lt; summary>///二维码解码///& lt;/summary>///& lt;参数name=癴ilePath"在图片路径& lt;/param>///& lt; returns> & lt;/returns>
  filePath CodeDecoder公共静态字符串(字符串)
  {
  如果(string.IsNullOrEmpty (filePath))
  {
  把新ArgumentNullException (filePath);
  }
  试一试
  {
  如果(! System.IO.File.Exists (filePath))
  返回null;
  var myBitmap=新的位图(Image.FromFile (filePath));
  var解码器=new QRCodeDecoder ();
  var decodedString=decoder.decode(新QRCodeBitmapImage (myBitmap));
  返回decodedString;
  }
  捕获(异常交货)
  {
  抛出新的异常(ex.Message);
  }
  }

<强> 3。选择生成的二维码参数:

///& lt; summary>///选择生成二维码的相关类型///& lt;参数name=皊trData"在要生成的文字或者数字,支持中文。如:“4408810820深圳——广州“;或者:4444444444 & lt;/param>///& lt;参数name=皅rEncoding"在三种尺寸:字节,ALPHA_NUMERIC, NUMERIC///& lt;参数name=發evel"在大小:L M Q H///& lt;参数name=皏ersion"祝辞版本:如8 & lt;/param>///& lt;参数name=皊cale"在比例:如4 & lt;/param>///& lt; returns> & lt;/returns>///& lt;/summary>
  qrEncoding strData公共空CreateCode_Choose(字符串,字符串,字符串,整数版本,int规模)
  {
  var qrCodeEncoder=new qrCodeEncoder ();
  var编码=qrEncoding;
  开关(编码)
  {
  例“Byte":
  qrCodeEncoder。QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.BYTE;
  打破;
  例“AlphaNumeric":
  qrCodeEncoder。QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
  打破;
  例“Numeric":
  qrCodeEncoder。QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.NUMERIC;
  打破;
  默认值:
  qrCodeEncoder。QRCodeEncodeMode=QRCodeEncoder.ENCODE_MODE.BYTE;
  打破;
  }
  
  qrCodeEncoder。QRCodeScale=规模;
  qrCodeEncoder。QRCodeVersion=版本;
  开关(高度)
  {
  例“L":
  qrCodeEncoder。QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.L;
  打破;
  例“M":
  qrCodeEncoder。QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.M;
  打破;
  例“Q":
  qrCodeEncoder。QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.Q;
  打破;
  默认值:
  qrCodeEncoder。QRCodeErrorCorrect=QRCodeEncoder.ERROR_CORRECTION.H;
  打破;
  }
  图像图像=零;
  文件流fs=零;
  试一试
  {//文字生成图片
  形象=qrCodeEncoder.Encode (strData);
  var=DateTime.Now.ToString文件名(“yyyymmddhhmmssfff") +“.jpg";
  var filepath=HttpContext.Current.Server.MapPath (@" ~ \ Upload") +“\ \”;+文件名;
  fs=新文件流(filepath FileMode。OpenOrCreate FileAccess.Write);
  的形象。保存(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
  }
  抓住(IOException)交货
  {
  把新IOException (ex.Message);
  }
  最后
  {
  如果(fs !=null) fs.Close ();
  如果(形象!=null) image.Dispose ();
  }
  }

c#用ThoughtWorks生成二维码的方法