(转)二维码生成代码

时间:2024-02-25 19:12:27

摘自:http://blog.csdn.net/zlfxy/article/details/8733333

本内容参考网上的资料,自己整理后,练习下,做了一个很简单的二维码生成Demo。

参考博客:http://blog.csdn.net/wangpeng047/article/details/7181217

1、本文主要要实现的效果图为:

上面的二维码是一张图片,里面输入了一些中文的消息,你可以用你的智能手机,扫描下。

2、主要实现的代码:

本代码主要是在asp.net中,生成一张二维码图片,在网页中显示,而且,将二维码图片保存在了,D:\zlf\zz.png;zz.png也就是上面看到的效果图。

 

[csharp] view plaincopy
  1. using System;  
  2. using System.Configuration;  
  3. using System.Data;  
  4. using System.Linq;  
  5. using System.Web;  
  6. using System.Web.Security;  
  7. using System.Web.UI;  
  8. using System.Web.UI.HtmlControls;  
  9. using System.Web.UI.WebControls;  
  10. using System.Web.UI.WebControls.WebParts;  
  11. using System.Xml.Linq;  
  12. using System.Drawing.Imaging;  
  13.   
  14. using ThoughtWorks.QRCode.Codec;  
  15. using ThoughtWorks.QRCode.Codec.Data;  
  16. using ThoughtWorks.QRCode.Codec.Util;  
  17. using System.IO;  
  18. using System.Text;  
  19.   
  20. public partial class _Default : System.Web.UI.Page   
  21. {  
  22.     protected void Page_Load(object sender, EventArgs e)  
  23.     {  
  24.          
  25.     }  
  26.     protected void Button1_Click(object sender, EventArgs e)  
  27.     {  
  28.         QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();  
  29.   
  30.         qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;  
  31.   
  32.         qrCodeEncoder.QRCodeScale = 4;  
  33.   
  34.         qrCodeEncoder.QRCodeVersion = 8;  
  35.   
  36.         qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;  
  37.   
  38.         //String data = "Hello 二维码!";  
  39.         String data = TextBox1.Text.ToString();  
  40.         Response.Write(data);  
  41.   
  42.         System.Drawing.Bitmap image = qrCodeEncoder.Encode(data);  
  43.   
  44.         System.IO.MemoryStream MStream = new System.IO.MemoryStream();  
  45.   
  46.         image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);  
  47.   
  48.         Response.ClearContent();  
  49.   
  50.         Response.ContentType = "image/Png";  
  51.   
  52.         Response.BinaryWrite(MStream.ToArray());  
  53.   
  54.         //FileInfo f = new FileInfo(@"d:\zl.png");  
  55.         Directory.CreateDirectory("d:\\zlf");  
  56.         FileStream fs = new FileStream("d:\\zlf\\zz.png", FileMode.CreateNew, FileAccess.ReadWrite);  
  57.   
  58.         BinaryWriter bw = new BinaryWriter(fs, UTF8Encoding.UTF8);  
  59.         byte[] by = MStream.ToArray();  
  60.         for (int i = 0; i < MStream.ToArray().Length; i++)  
  61.             bw.Write(by[i]);  
  62.         fs.Close();  
  63.   
  64.     }  
  65. }  

 

 

3、网页中的布局很简单,就是一个TextBox和一个Button。

  1. <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title>无标题页</title>  
  8. </head>  
  9. <body>  
  10.     <form id="form1" runat="server">  
  11.     <div>  
  12.         请输入内容:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  
  13.         <br/>  
  14.         <asp:Button ID="Button1" runat="server" Text="生成二维码" onclick="Button1_Click" />  
  15.     </div>  
  16.     </form>  
  17. </body>  
  18. </html>  

 

 

4、本文,在.net中用到了二维码类库,这是别人封装好的QRCode。

我已经将类库引入进了项目了,在bin文件夹下。

 

QRCode二维码维码支持中文Asp.Net(C#),是VS2010的项目,VS2008、VS2005也可以用,需要在你的项目里引用ThoughtWorks.QRCode.dll,在二维码生成页面内加上下面的代码:

 

[csharp] view plaincopy
  1. using System.Drawing.Imaging;  
  2. using ThoughtWorks.QRCode.Codec;  
  3. using ThoughtWorks.QRCode.Codec.Data;  
  4. using ThoughtWorks.QRCode.Codec.Util;  
  5. QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();  
  6. qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;  
  7. qrCodeEncoder.QRCodeScale = 4;  
  8. qrCodeEncoder.QRCodeVersion = 8;  
  9. qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;  
  10. String data = "Hello 二维码!";  
  11. System.Drawing.Bitmap image = qrCodeEncoder.Encode(data);  
  12. System.IO.MemoryStream MStream = new System.IO.MemoryStream();  
  13. image.Save(MStream, System.Drawing.Imaging.ImageFormat.Gif);  
  14. Response.ClearContent();  
  15. Response.ContentType = "image/Gif";  
  16. Response.BinaryWrite(MStream.ToArray());  

 

如果需要源码练习的朋友,下载链接