最近在项目碰到.NET在线动态生成二维码的需求,在引用第三方二维码特征码库的帮助下很顺利实现了。特记录一下。废话不多说,直接上代码。
//参数获取 string txt = znConvert.ConverToGB(tbTxt.Text.Trim(), 16); string encoding = ddlEncoding.SelectedValue.ToString(); string level = ddlLevel.SelectedValue.ToString(); string ver = tbVersion.Text.Trim(); string size = tbSize.Text.Trim(); //实例化 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); //编码方式 if (encoding == "Byte") qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; else if (encoding == "AlphaNumeric") qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; else if (encoding == "Numeric") qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; //尺寸:每个小方格的宽度 qrCodeEncoder.QRCodeScale = znConvert.StrToInt(size, 10); ; //版本号 qrCodeEncoder.QRCodeVersion = znConvert.StrToInt(ver, 0); //纠错码等级 if (level == "L") qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; else if (level == "M") qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; else if (level == "Q") qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; else if (level == "H") qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; //生成二维码 System.Drawing.Image image; image = qrCodeEncoder.Encode(txt); string fileName = this._id + ".png"; string fileFolder = "/attach/imap/"; string filePath = znFile.GetMapPath(fileFolder) + fileName; System.IO.FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write); image.Save(fs, System.Drawing.Imaging.ImageFormat.Png); fs.Close(); image.Dispose();