.net 二维码生成

        public static string GetQRImageUrl(string strData, string level, string qrEncoding, int version, int scale)
        {
            //return System.Web.HttpContext.Current.Server.MapPath(@"~\upload");
            try
            {
                
                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
                string encoding = qrEncoding;
                switch (encoding)
                {
                    case "Byte":
                        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                        break;
                    case "AlphaNumeric":
                        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
                        break;
                    case "Numeric":
                        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;
                        break;
                    default:
                        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                        break;
                }

                qrCodeEncoder.QRCodeScale = scale;
                //字符串较长的情况下,用ThoughtWorks.QRCode生成二维码时出现“索引超出了数组界限”的错误。
                //解决方法:将 QRCodeVersion 改为0。
                //qrCodeEncoder.QRCodeVersion = version;
                qrCodeEncoder.QRCodeVersion = 0;
                switch (level)
                {
                    case "L":
                        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
                        break;
                    case "M":
                        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                        break;
                    case "Q":
                        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
                        break;
                    default:
                        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
                        break;
                }
               
               
                //文字生成图片
                Bitmap image = qrCodeEncoder.Encode(strData.ToString(), Encoding.GetEncoding("GB2312"));
                //string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg";
                string filename = strData.ToString() + ".jpg";
                string filepath = System.Web.HttpContext.Current.Server.MapPath(@"~\upload") + "\\" + filename;
                //如果文件夹不存在,则创建
                //if (!Directory.Exists(filepath))
                //    Directory.CreateDirectory(filepath);
                System.IO.FileStream fs = new System.IO.FileStream(filepath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
                image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
                fs.Close();
                image.Dispose();
                return ("/upload/" + filename);
            }
            catch (Exception ex)
            {
                return "";
                throw new ApplicationException(ex.Message);
            }
        }

附件:qRCode 引用链接库

转载于:https://www.cnblogs.com/hasaki/p/6588713.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值