关于二维码生成最近写了一个小Demo如下:
控制器
1 [HttpGet]
2 public ActionResult CreateQRcode()
3 {
4 return View();
5 }
6
7 [HttpPost]
8 public ActionResult CreateQRcode(string content)
9 {
10 string currentPath = Server.MapPath("~/.") + @"/ContentOwnBarCode_Images";//二维码图片存放的路径
11 Bitmap bs = QrCodeHelper.Create_ImgCode(content, 8);//创建二维码图片
12 string imgUrl = QrCodeHelper.SaveImg(currentPath, bs);//保存图片
13 ViewBag.ImgUrl = @"/Content/Own/BarCode_Images" + @"/" + imgUrl;//将路径返回到前台引用
14 return View();
15 }
视图
1 @* action 指定 控制器和视图*@
2 <form id="form1" action="/Default1/CreateQRcode" method="post">
3 <div>
4 请输入内容:<input type="text" name="content" />
5 <br />
6 <input id="Button1" value="生成二维码" type="submit" />
7 </div>
8 <div>
9 @if (ViewBag.ImgUrl != null)
10 {
11 <img src="@ViewBag.ImgUrl" />
12 }
13 </div>
14 </form>
生成二维码的类文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /// <summary>
2 /// 二维码生成
3 /// </summary>
4 public class QrCodeHelper
5 {
6 #region 保存图片
7 /// <summary>
8 /// 保存图片
9 /// </summary>
10 /// <param name="strPath">保存路径</param>
11 /// <param name="img">图片</param>
12 /// <returns>图片路径</returns>
13 public static string SaveImg(string strPath, Bitmap img)
14 {
15 //保存图片到目录
16 if (Directory.Exists(strPath))
17 {
18 //文件名称
19 string guid = Guid.NewGuid().ToString().Replace("-", "") + ".png";
20 img.Save(strPath + "/" + guid, System.Drawing.Imaging.ImageFormat.Png);
21 return (guid);
22 }
23 else
24 {
25 //当前目录不存在,则创建
26 Directory.CreateDirectory(strPath);
27 return "";
28 }
29 }
30 #endregion
31
32 #region 生成二维码图片
33 /// <summary>
34 /// 生成二维码图片
35 /// </summary>
36 /// <param name="codeNumber">要生成二维码的字符串</param>
37 /// <param name="size">大小尺寸</param>
38 /// <returns>二维码图片</returns>
39 public static Bitmap Create_ImgCode(string codeNumber, int size)
40 {
41 //创建二维码生成类
42 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
43 //设置编码模式
44 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
45 //设置编码测量度
46 qrCodeEncoder.QRCodeScale = size;
47 //设置编码版本
48 qrCodeEncoder.QRCodeVersion = 0;
49 //设置编码错误纠正
50 qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
51 //生成二维码图片
52 System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber);
53 return image;
54 }
55 #endregion
56
57 #region 打开指定目录
58 /// <summary>
59 /// 打开指定目录
60 /// </summary>
61 /// <param name="path"></param>
62 public static void Open_File(string path)
63 {
64 System.Diagnostics.Process.Start("explorer.exe", path);
65 }
66 #endregion
67
68 #region 删除目录下所有文件
69 /// <summary>
70 /// 删除目录下所有文件
71 /// </summary>
72 /// <param name="aimPath">路径</param>
73 public static void DeleteDir(string aimPath)
74 {
75 try
76 {
77 //目录是否存在
78 if (Directory.Exists(aimPath))
79 {
80 // 检查目标目录是否以目录分割字符结束如果不是则添加之
81 if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
82 aimPath += Path.DirectorySeparatorChar;
83 // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
84 // 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法
85 string[] fileList = Directory.GetFiles(aimPath);
86 //string[] fileList = Directory.GetFileSystemEntries(aimPath);
87 // 遍历所有的文件和目录
88 foreach (string file in fileList)
89 {
90 // 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件
91 if (Directory.Exists(file))
92 {
93 DeleteDir(aimPath + Path.GetFileName(file));
94 }
95 // 否则直接Delete文件
96 else
97 {
98 File.Delete(aimPath + Path.GetFileName(file));
99 }
100 }
101 }
102 }
103 catch (Exception e)
104 {
105 throw e;
106 }
107 }
108 #endregion
109 }
关于二维码的生成就到这里了。