生成二维码图片

1.

引用ThoughtWorks.QRCode.dll

2.

     #region 生成二维码图片
        /// <summary>
        ///  生成二维码图片
        /// </summary>
        /// <returns>上传图片路径</returns>
        public static string UploadQRCodeImage(string fileUrl, string typeName)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            String encoding = "Byte";
            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;
            }
            try
            {
                int scale = 3;
                qrCodeEncoder.QRCodeScale = scale;
            }
            catch (Exception ex)
            {
                // return;
            }
            try
            {
                int version = 0;//出现数组溢出问题,使用0会自动检测,使得encode通过
                qrCodeEncoder.QRCodeVersion = version;
            }
            catch (Exception ex)
            {
                // MessageBox.Show("Invalid version !");
            }

            string errorCorrect = "H";
            if (errorCorrect == "L")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
            else if (errorCorrect == "M")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            else if (errorCorrect == "Q")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
            else if (errorCorrect == "H")
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;

            Image image;
          //  String data = fileUrl;
            image = qrCodeEncoder.Encode(fileUrl);

            //上传目录   
            string directory = HttpContext.Current.Server.MapPath(QRCodePath);
            string fileName = typeName + ".png";// + fileUrl.Split('.').Last();
            
            if (!String.IsNullOrEmpty(fileName))
            {
                //文件全路径   
                string path = directory + fileName;
                //判断目录是否存在   
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }
                //文件存在就删除文件   
                AccessoryAPPI.DeleteFiles(path);

                image.Save(path);
            }
            return "";
        }
        #endregion

 

你可能感兴趣的:(二维码)