C# 生成二维码
在C#中直接引用ThoughtWorks.QRCode.dll 类,
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
qrCodeEncoder.QRCodeScale = 4; //大小(值越大生成的二维码图片像素越高)
qrCodeEncoder.QRCodeVersion = 8; //版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //错误效验、错误更正(有4个等级)
string data = "http://www.xxxxx.com/register.aspx?refpeople=" + username + ""; //二维码信息
context.Response.Write(data);
System.Drawing.Bitmap image = qrCodeEncoder.Encode(data);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);
context.Response.ClearContent();
context.Response.ContentType = "image/Png";
context.Response.BinaryWrite(MStream.ToArray());
string path = context.Server.MapPath("~/uploadfile/twocode");
Directory.CreateDirectory(path);
path = path + "\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".png";
FileStream fs = new FileStream(path, FileMode.CreateNew, FileAccess.ReadWrite);
BinaryWriter bw = new BinaryWriter(fs, UTF8Encoding.UTF8);
byte[] by = MStream.ToArray();
for (int i = 0; i < MStream.ToArray().Length; i++)
bw.Write(by[i]);
fs.Close();
string relativePath = "/uploadfile/twocode/" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".png";