標籤:
在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";
C# 產生二維碼