• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#生成二维码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

项目引用引用ThoughtWorks.QRCode.dll 类

新建类QrCodeHelper

引用

using ThoughtWorks.QRCode.Codec;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

创建生成二维码的方法CreateEQcoder

 1 /// <summary>
 2         /// 生成二维码
 3         /// </summary>
 4         /// <param name="qrCodeScale">尺寸4-15</param>
 5         /// <param name="qrCodeVersion">复杂级别3-12</param>
 6         /// <param name="qrCodeErrorCorrect">容错量"H","L","M","Q"</param>
 7         /// <param name="url">二维码信息</param>
 8         /// <param name="uId">用户ID(唯一标识)</param>
 9         /// <returns></returns>
10         public static string CreateEQcoder(int qrCodeScale, int qrCodeVersion, string qrCodeErrorCorrect, string url, string uId)
11         {
12             QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
13             qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
14             qrCodeEncoder.QRCodeScale = qrCodeScale;
15             qrCodeEncoder.QRCodeVersion = qrCodeVersion;
16             switch (qrCodeErrorCorrect)
17             {
18                 case "H":
19                     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
20                     break;
21                 case "L":
22                     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
23                     break;
24                 case "M":
25                     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
26                     break;
27                 case "Q":
28                     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
29                     break;
30             }
31             qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
32             Bitmap bmPhoto = qrCodeEncoder.Encode(url, System.Text.Encoding.GetEncoding("UTF-8"));
33             string fileName = DateTime.Now.ToString("yyyy") + ".jpg";
34             string savePath = "/Tempuploads/" + uId + "/QRCode/";
35 
36             string dirPath = System.Web.HttpContext.Current.Server.MapPath(savePath);
37 
38             try
39             {
40                 if (!Directory.Exists(dirPath))
41                 {
42                     Directory.CreateDirectory(dirPath);
43                 }
44                 bmPhoto.Save(System.Web.HttpContext.Current.Server.MapPath("/") + savePath + fileName, ImageFormat.Jpeg);
45                 bmPhoto.Dispose();
46                 return savePath + fileName;
47             }
48             catch (Exception)
49             {
50                 return "";
51             }
52             finally
53             {
54                 bmPhoto.Dispose();
55             }
56         }

解析二维码

QRCodeDecoder decoder = new QRCodeDecoder();   
String decodedString = decoder.decode(new QRCodeBitmapImage(new Bitmap(bmPhoto)));   
string Text = decodedString; 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#多线程排队队列实现的源码发布时间:2022-07-13
下一篇:
根据数据生成INSERTINTO...的SQL(.NetC#,T-SQLStoreProcedure分别实现)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap