.NET在线动态生成二维码

.NET 转摘 - 2015-05-17

最近在项目碰到.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();

附件下载:ThoughtWorks.QRCode.dll

添加新评论取消回复

昵称:
验证码: 验证码,看不清楚?请点击刷新验证码
评论: