Пример #1
0
        public QRImage(QRCodeEncoder encoder)
        {
            this.Encoder = encoder;

            this.QRCodeBackgroundColor = Color.White;
            this.QRCodeForegroundColor = Color.Black;
        }
Пример #2
0
    protected void guardarQR(string cuenta)
    {
        string        URL     = "http://planodigital.tigre.gov.ar/verificar.aspx?cuenta=" + cuenta + "";
        string        ruta    = Server.MapPath("/Archivos/qr/" + cuenta + ".png");
        QRCodeEncoder encoder = new QRCodeEncoder();
        Bitmap        qrcode  = encoder.Encode(URL);

        qrcode.Save(ruta);
        lblSelec.Text = ruta;
    }
Пример #3
0
        /// <summary>
        /// 返回二维码图片
        /// </summary>
        public static Bitmap Encode(string text)
        {
            var qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale        = 4;
            qrCodeEncoder.QRCodeVersion      = 5;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            return(qrCodeEncoder.Encode(text));
        }
Пример #4
0
        /// <summary>
        /// 根据链接获取二维码
        /// </summary>
        /// <param name="url">链接</param>
        /// <returns>返回二维码图片</returns>
        public static Image GetQRCodeBmp(string url)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale        = 4;
            qrCodeEncoder.QRCodeVersion      = 0;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            return(qrCodeEncoder.Encode(url));
        }
Пример #5
0
        /// <summary>
        /// 创建临时二维码图片(保存通讯录、vcard)
        /// </summary>
        /// <param name="text">二维码图片内信息</param>
        /// <param name="file">二维码图片路径</param>
        public static void CreateTempQrCode(string text, string file)
        {
            QRCodeEncoder qrencoder = new QRCodeEncoder();

            qrencoder.QRCodeEncodeMode   = EncodeMode;
            qrencoder.QRCodeVersion      = 0;
            qrencoder.QRCodeScale        = CodeScale;
            qrencoder.QRCodeErrorCorrect = ErrorCorrection;
            CreateQrCodeImg(text, file, qrencoder);
        }
Пример #6
0
        void LoadQRCode(String eventid, String room)
        {
            string url = "http://wsv-att1snd.uol.le.ac.uk/registration.aspx?event=" + eventid + "&room=" + room;

            QRCodeEncoder encoder = new QRCodeEncoder();
            Bitmap        hi      = encoder.Encode(url);

            hi.Save(Server.MapPath("~/images/ji.jpg"), ImageFormat.Jpeg);
            img.ImageUrl = "~/images/ji.jpg";
        }
Пример #7
0
        public static System.Drawing.Image GetPictureFromText(string code)
        {
            QRCodeEncoder encoder = new QRCodeEncoder();

            encoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;           //ALPHA_NUMERIC, nonostante il nome, non va bene per codificare un GUID.
            encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
            encoder.QRCodeVersion      = 3;

            return(encoder.Encode(code));
        }
Пример #8
0
        public void GenerateQRCode(string textToEncode)
        {
            QRCodeEncoder encoder = new QRCodeEncoder();

            encoder.QRCodeScale = 8;
            Bitmap bmp      = encoder.Encode(textToEncode);
            string filename = Guid.NewGuid().ToString("n").Substring(0, 8);

            bmp.Save(filename, ImageFormat.Jpeg);
        }
Пример #9
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="qrCodeContent"></param>
        /// <returns></returns>
        public static Bitmap GenerateQRCode(string qrCodeContent)
        {
            QRCodeEncoder encoder = new QRCodeEncoder
            {
                QRCodeVersion = 0
            };
            Bitmap img = encoder.Encode(qrCodeContent, Encoding.UTF8);

            return(img);
        }
Пример #10
0
        private void button2_Click(object sender, EventArgs e)
        {
            Random        rand    = new Random();              //создаём новый генератор рандомных чисел
            int           i       = rand.Next(100000, 999999); // в переменную i заносим рандомное число в пределах от 100000 до 999999 (все шестизначные числа)
            string        qrimage = Convert.ToString(i);       //конвеорируем i в string и  записываем его значение в переменную qrimage
            QRCodeEncoder encoder = new QRCodeEncoder();       // создаём новое кодирование qr-кода
            Bitmap        qrcode  = encoder.Encode(qrimage);   // получаем закодированное изображение в классе работы с изображением bitmap.

            pictureBox1.Image = qrcode as Image;               // выводит полученное изображение как рисунок в pictureBox1.
        }
Пример #11
0
        public Image QrGen()
        {
            QRCodeEncoder encoder = new QRCodeEncoder();

            encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
            encoder.QRCodeScale        = 3;
            Bitmap img = encoder.Encode(ReptileId);

            return(img);
        }
 public ActionResult<string> GetQRCode(Guid gid)
 {
     var item = _context.WorkTicket.Find(gid);
     if (item == null)
     {
         return NotFound();
     }
     string result = QRCodeEncoder.Encoder(item);
     return result;
 }
Пример #13
0
        public static BitmapSource Str2QRCodeImg(string code)
        {
            QRCodeEncoder qRCodeEncoder = new QRCodeEncoder();

            qRCodeEncoder.QRCodeVersion = 0;
            System.Drawing.Bitmap bmp = qRCodeEncoder.Encode(code, Encoding.UTF8);
            BitmapSource          bi  = ImageUtil.CrateBitmapSourceFromBitmap(bmp);

            return(bi);
        }
Пример #14
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="qrCodeContent">要编码的内容</param>
        /// <returns>返回二维码位图</returns>
        public static Bitmap QRCodeEncoderUtil(string qrCodeContent)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder
            {
                QRCodeVersion = 0
            };
            Bitmap img = qrCodeEncoder.Encode(qrCodeContent, Encoding.UTF8);//指定utf-8编码, 支持中文

            return(img);
        }
Пример #15
0
        /// <summary>
        /// Generates a QR code based on the input.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void generate_button_Click(object sender, EventArgs e)
        {
            var path    = path_textbox.Text;
            var encoder = new QRCodeEncoder();
            var code    = encoder.Encode(path);

            pictureBox1.Image            = code;
            save_button.Enabled          = true;
            print_qr_code_button.Enabled = true;
        }
Пример #16
0
        public string CreateQRCodeImage(string id)
        {
            QRCodeEncoder encoder = new QRCodeEncoder();
            Bitmap        img     = encoder.Encode(id.ToString());
            string        path    = Server.MapPath("~/QRCodes/") + id + ".jpg";

            img.Save(path, ImageFormat.Jpeg);

            return(path);
        }
Пример #17
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="name">二维码图片的文件名</param>
        /// <param name="data">要生成的文字或者数字,支持中文。如: "801000" </param>
        /// <param name="encoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>
        /// <param name="level">大小:L M Q H</param>
        /// <param name="scale">比例:如 4</param>
        /// <param name="version">版本:如 8</param>
        /// <returns></returns>
        public static void QRCodeCreate(string encoding, string level, int scale, int version, string data, string filepath)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            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;
            }
            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;
            }
            qrCodeEncoder.QRCodeScale   = scale;
            qrCodeEncoder.QRCodeVersion = version;
            //文字生成图片
            System.Drawing.Image image = qrCodeEncoder.Encode(data);
            //string filename = name + ".jpg";
            //string filepath = HttpContext.Current.Server.MapPath(@"~\upload\qrcode") + "\\" + filename;
            //如果文件夹不存在,则创建
            //string directory = HttpContext.Current.Server.MapPath(@"~\upload\qrcode");
            //if (!Directory.Exists(directory))
            //    Directory.CreateDirectory(directory);
            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();
        }
        /// <summary>
        /// 生成二维码方法(复杂)
        /// </summary>
        /// <param name="strData">要生成的文字或者数字,支持中文。如: "15377541070 上海 Akon_Coder</param>
        /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>
        /// <param name="level">大小:L M Q H</param>
        /// <param name="version">版本:如 8</param>
        /// <param name="scale">比例:如 4</param>
        /// <returns></returns>
        public static string CreateCode_Choose(string strData, string qrEncoding, string level, int version, int scale)
        {
            var    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;
            qrCodeEncoder.QRCodeVersion = version;
            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;
            }
            //文字生成图片
            Image image    = qrCodeEncoder.Encode(strData);
            var   filename = DateTime.Now.ToString("yyyymmddhhmmssfff") + ".jpg";
            var   filepath = AppDomain.CurrentDomain.BaseDirectory + @"\UploadPic\" + filename;
            var   fs       = new FileStream(filepath, FileMode.OpenOrCreate, FileAccess.Write);

            image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
            fs.Close();
            image.Dispose();
            return(filepath);
        }
Пример #19
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="Content">内容文本</param>
        /// <param name="QRCodeEncodeMode">二维码编码方式</param>
        /// <param name="QRCodeErrorCorrect">纠错码等级</param>
        /// <param name="QRCodeVersion">二维码版本号 0-40,一般使用8</param>
        /// <param name="QRCodeScale">每个小方格的预设宽度(像素),正整数</param>
        /// <param name="size">图片尺寸(像素),0表示不设置</param>
        /// <returns></returns>
        internal static Image CreateQRCode(string Content,
                                           QRCodeEncoder.ENCODE_MODE QRCodeEncodeMode,
                                           QRCodeEncoder.ERROR_CORRECTION QRCodeErrorCorrect,
                                           int QRCodeVersion, int QRCodeScale, int size)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode   = QRCodeEncodeMode;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeErrorCorrect;
            qrCodeEncoder.QRCodeScale        = QRCodeScale;
            qrCodeEncoder.QRCodeVersion      = QRCodeVersion;
            System.Drawing.Image image = qrCodeEncoder.Encode(Content, Encoding.UTF8);
            #region 根据设定的目标图片尺寸调整二维码QRCodeScale设置,并添加边框
            if (size > 0)
            {
                #region 当设定目标图片尺寸大于生成的尺寸时,逐步增大方格尺寸,直至图片尺寸达到接近size的最大值
                while (image.Width < size)
                {
                    qrCodeEncoder.QRCodeScale++;
                    System.Drawing.Image imageNew = qrCodeEncoder.Encode(Content, Encoding.UTF8);
                    if (imageNew.Width < size)
                    {
                        image = new Bitmap(imageNew);
                        imageNew.Dispose();
                        imageNew = null;
                    }
                    else
                    {
                        //新尺寸未采用,恢复最终使用的尺寸
                        qrCodeEncoder.QRCodeScale--;
                        imageNew.Dispose();
                        imageNew = null;
                        break;
                    }
                }
                #endregion

                #region 当设定目标图片尺寸小于生成的尺寸时,逐步减小方格尺寸
                while (image.Width > size && qrCodeEncoder.QRCodeScale > 1)
                {
                    qrCodeEncoder.QRCodeScale--;
                    System.Drawing.Image imageNew = qrCodeEncoder.Encode(Content, Encoding.UTF8);
                    image = new System.Drawing.Bitmap(imageNew);
                    imageNew.Dispose();
                    imageNew = null;
                    if (image.Width < size)
                    {
                        break;
                    }
                }
                #endregion
            }
            #endregion
            return(image);
        }
Пример #20
0
        //  POST: /Customers/ExportCard

        public FileResult ExportCard(int ContractID, int CustomerID)
        {
            IList <Customers> listData = new List <Customers>();
            CustomersData     data     = new CustomersData();

            listData = data.Get(CustomerID);

            try
            {
                string yourcode   = CustomerID + ":" + ContractID;
                string firstText  = listData[0].CustomerName;
                string secondText = "(" + listData[0].CustomerNickName + ")";

                PointF firstLocation  = new PointF(550f, 250f);
                PointF secondLocation = new PointF(550f, 300f);

                string imageFilePath = Server.MapPath("~/Content/bg_1.png");

                Bitmap bitmap = new Bitmap(1800, 1400);
                bitmap = (Bitmap)Image.FromFile(imageFilePath);//load the image file

                //string imageFilePath1 = Server.MapPath("~/Content/qr1.png");
                //Bitmap bitmap1 = new Bitmap(400, 400);
                //bitmap1 = (Bitmap)Image.FromFile(imageFilePath1.ToString());//load the image file


                QRCodeEncoder enc = new QRCodeEncoder();
                enc.QRCodeScale = 5;
                Bitmap qrcode = enc.Encode(yourcode);


                using (Graphics graphics = Graphics.FromImage(bitmap))
                {
                    using (Font arialFont = new Font("Cordia New", 30))
                    {
                        graphics.DrawString(firstText, arialFont, Brushes.White, firstLocation);
                        graphics.DrawString(secondText, new Font("Cordia New", 30), Brushes.White, secondLocation);


                        graphics.DrawImage(qrcode.Clone(new Rectangle(0, 0, qrcode.Width - 1, qrcode.Height - 1), qrcode.PixelFormat), new Point(200, 200));
                    }
                }
                MemoryStream ms = new MemoryStream();
                bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

                bitmap.Save(Server.MapPath("~/Content/img1.jpg"), System.Drawing.Imaging.ImageFormat.Png);

                return(File(Server.MapPath("~/Content/img1.jpg"), System.Net.Mime.MediaTypeNames.Application.Octet,
                            "MEMBER" + (CustomerID * 1000) + ContractID + ".png"));
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #21
0
        private Image GetQRImage(string data)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;


            try
            {
                //14 2920bit/8=365byte 16 3624/8=453byte 18 4504=536byte 20 5352=669byte
                qrCodeEncoder.QRCodeScale = Int16.Parse(System.Configuration.ConfigurationManager.AppSettings["QRCodeScale"]);
            }
            catch (Exception ex)
            {
                qrCodeEncoder.QRCodeScale = 2;
            }


            try
            {
                //14 2920bit/8=365byte 16 3624/8=453byte 18 4504=536byte 20 5352=669byte
                qrCodeEncoder.QRCodeVersion = Int16.Parse(System.Configuration.ConfigurationManager.AppSettings["QRCodeVersion"]);
            }
            catch (Exception ex)
            {
                qrCodeEncoder.QRCodeVersion = 16;
            }


            string errorCorrect = "M";

            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;
            //,System.Text.Encoding.UTF8
            int length = data.Length;

            image = qrCodeEncoder.Encode(data, System.Text.Encoding.GetEncoding("gb2312"));
            return(image);
        }
Пример #22
0
        public void Qrcode()
        {
            string        url           = "http://mc.cargocargo.cn/cardshare";
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale        = 4;
            qrCodeEncoder.QRCodeVersion      = 8;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            System.Drawing.Image image = qrCodeEncoder.Encode(url);
        }
Пример #23
0
        public static Bitmap ToQRCode(string strText, string filename)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            qrCodeEncoder.QRCodeVersion      = 7;
            qrCodeEncoder.QRCodeScale        = 4;
            //生成图像
            return(qrCodeEncoder.Encode(strText, Encoding.Default));
        }
Пример #24
0
        private Image generateQrCode(string data, int kkLevel)
        {
            QRCodeEncoder qe = new QRCodeEncoder();

            qe.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;
            qe.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
            qe.QRCodeVersion      = kkLevel;
            Bitmap bm = qe.Encode(data);

            return(bm);
        }
Пример #25
0
        /// <summary>
        /// 生成二维码图片 
        /// </summary>
        /// <param name="strText">图片中的文本信息</param>
        /// <param name="filename"></param>
        /// <returns></returns>
        public static Bitmap ToQRCode(string strText)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

            qrCodeEncoder.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;   //设置二维码编码格式 
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; //设置错误校验 
            qrCodeEncoder.QRCodeVersion      = 7;                                //设置编码测量度  4
            qrCodeEncoder.QRCodeScale        = 4;                                //设置编码版本  0
            //生成图像
            return(qrCodeEncoder.Encode(strText, Encoding.Default));
        }
        public ActionResult getDecode(int no)
        {
            QRCodeEncoder enc = new QRCodeEncoder();
            QRCodeDecoder dec = new QRCodeDecoder();
            //string aaa = (dec.decode(new QRCodeBitmapImage(qrcode)));

            Bitmap b     = new Bitmap(Path.Combine(Server.MapPath("/App_Data/" + no + ".jpg")));
            string aaaaa = (dec.decode(new QRCodeBitmapImage(b)));

            return(Json(new { success = true }));
        }
Пример #27
0
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="strData">要生成的文字或者数字,支持中文。如: "4408810820 深圳-广州" 或者:4444444444</param>
        /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>
        /// <param name="level">大小:L M Q H</param>
        /// <param name="version">版本:如 8</param>
        /// <param name="scale">比例:如 4</param>
        /// <returns></returns>
        public string CreateCode_Choose(string strData, string qrEncoding, string level, int version, int scale)
        {
            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;
            qrCodeEncoder.QRCodeVersion = version;
            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;
            }
            System.Drawing.Image image = qrCodeEncoder.Encode(strData);
            string filename            = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg";
            string filepath            = Server.MapPath(@"~\WeiXinZhiFu\Upload") + "\\" + filename;

            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(string.Format(@"/Upload/" + filename));
        }
Пример #28
0
        public Image CreateQRCode(string data)
        {
            Image         img           = null;
            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;
            }
            try
            {
                qrCodeEncoder.QRCodeScale = scale;
            }
            catch
            {
                return(img);
            }
            try
            {
                qrCodeEncoder.QRCodeVersion = version;
            }
            catch
            {
                return(img);
            }

            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;
            }

            img = qrCodeEncoder.Encode(data);
            return(img);
        }
Пример #29
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="keyValue"></param>
        /// <param name="filePath"></param>
        /// <param name="equiptype"></param>
        public void BuilderImg10(string keyValue, string filePath, string equiptype)
        {
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder
            {
                QRCodeEncodeMode      = QRCodeEncoder.ENCODE_MODE.BYTE,
                QRCodeErrorCorrect    = QRCodeEncoder.ERROR_CORRECTION.M,
                QRCodeVersion         = 21,
                QRCodeScale           = 3,
                QRCodeForegroundColor = System.Drawing.Color.Black
            };
            float size = 301, margin = 1f;

            System.Drawing.Image image = qrCodeEncoder.Encode(keyValue + "|" + equiptype, Encoding.UTF8);
            int resWidth  = (int)(size + 2 * margin);
            int resHeight = (int)(size + 2 * margin);
            // 核心就是这里新建一个bitmap对象然后将image在这里渲染
            Bitmap   newBit = new Bitmap(resWidth, resHeight, PixelFormat.Format32bppRgb);
            Graphics gg     = Graphics.FromImage(newBit);

            // 设置背景白色
            for (int x = 0; x < resWidth; x++)
            {
                for (int y = 0; y < resHeight; y++)
                {
                    newBit.SetPixel(x, y, System.Drawing.Color.White);
                }
            }

            // 设置黑色边框
            for (int i = 0; i < resWidth; i++)
            {
                newBit.SetPixel(i, 0, System.Drawing.Color.Black);
                newBit.SetPixel(i, resHeight - 1, System.Drawing.Color.Black);
            }

            for (int j = 0; j < resHeight; j++)
            {
                newBit.SetPixel(0, j, System.Drawing.Color.Black);
                newBit.SetPixel(resWidth - 1, j, System.Drawing.Color.Black);
            }
            RectangleF desRect = new RectangleF()
            {
                X = margin, Y = margin, Width = size, Height = size
            };
            RectangleF srcRect = new RectangleF()
            {
                X = 0, Y = 0, Width = image.Width, Height = image.Height
            };

            gg.DrawImage(image, desRect, srcRect, GraphicsUnit.Pixel);
            newBit.Save(filePath, ImageFormat.Jpeg);
            newBit.Dispose();
            image.Dispose();
        }
Пример #30
0
        Bitmap GenerateQR(string s)
        {
            QRCodeEncoder qrencode = new QRCodeEncoder();

            qrencode.QRCodeEncodeMode   = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrencode.QRCodeScale        = 5;
            qrencode.QRCodeVersion      = 7;
            qrencode.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;

            return(qrencode.Encode(s));
        }
Пример #31
0
        /// 生成二维码
        /// </summary>
        /// <param name="strData">要生成的文字或者数字,支持中文。如: "4408810820 深圳-广州" 或者:4444444444</param>
        /// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>
        /// <param name="level">纠错编码:L(%7字码可被修改) M(%15字码可被修改)  Q(%25字码可被修改)  H(%30字码可被修改) </param>
        /// <param name="version">版本:如 8</param>
        /// <param name="scale">比例:如 4</param>
        /// <returns>返回二维码图片</returns>
        public static Image CreateQRCodeImage(string strData, string qrEncoding, string level, int version, int scale)
        {
            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;
            qrCodeEncoder.QRCodeVersion = version;
            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, Encoding.Default);

            return(image);
            //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 Content(@"/Upload/" + filename);
        }
Пример #32
0
        public void DecodeImageTest()
        {
            QRCodeEncoder encoder = new QRCodeEncoder();
            encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            encoder.QRCodeVersion = 4;

            string content = "Hello World";

            var cellWidth = 6;
            var img = new QRImage(encoder).EncodeImage(content, cellWidth);

            Assert.IsNotNull(img, "Image is not null");

            QRCodeDecoder decoder = new QRCodeDecoder();

            QRCodeBitmapImage bitmapImg = new QRCodeBitmapImage(img);
            var result = decoder.decode(bitmapImg);

            Assert.AreEqual(content, result);
        }
Пример #33
0
        public void EncodeDataTest()
        {
            QRCodeEncoder target = new QRCodeEncoder();
            target.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            target.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            target.QRCodeVersion = 4;

            string content = "Hello World";
            bool[][] expected = helloWorldQRData;
            bool[][] actual;

            actual = target.EncodeData(content);

            Assert.AreEqual<int>(expected.Length, actual.Length, "Lengths equal");

            string msgForm = "Value Same: [{0},{1}]";
            for (int row = 0; row < actual.Length; row++)
            {
                for (int col = 0; col < actual.Length; col++)
                {
                    // Note the comparison col, row are switched because my exported data is backwards
                    Assert.AreEqual(expected[row][col], actual[col][row], string.Format(msgForm, col, row));
                }
            }
        }
Пример #34
0
        public void EncodeImageTest()
        {
            QRCodeEncoder encoder = new QRCodeEncoder();
            encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            encoder.QRCodeVersion = 4;

            string content = "Hello World";

            var cellWidth = 6;
            var img = new QRImage(encoder).EncodeImage(content, cellWidth);

            Assert.IsNotNull(img, "Image is not null");

            var halfCellWidth = cellWidth / 2;
            var cells = encoder.EncodeData(content);
            for (int i = 0; i < cells.Length; i++)
            {
                for (int j = 0; j < cells.Length; j++)
                {
                    // Add offset for middle of cell.
                    var x = (i * cellWidth) + halfCellWidth;
                    var y = (j * cellWidth) + halfCellWidth;
                    var pixColor = img.GetPixel(x, y);
                    var expected = cells[i][j] ? Color.Black : Color.White;

                    Assert.AreEqual(expected.R, pixColor.R);
                    Assert.AreEqual(expected.G, pixColor.G);
                    Assert.AreEqual(expected.B, pixColor.B);
                }
            }

            img.Save("HelloWorld" + new Random().Next(100, 999) + "_QR.bmp");
        }
Пример #35
0
 /// <summary>
 /// Draws the qr.
 /// </summary>
 /// <param name="text">The text.</param>
 /// <param name="metrics">The metrics.</param>
 /// <returns></returns>
 protected virtual Image DrawQr(string text, BarcodeMetricsQr metrics)
 {
     QRCodeEncoder encoder = new QRCodeEncoder
     {
         Scale = metrics.Scale,
         Version = metrics.Version,
         EncodeMode = metrics.EncodeMode,
         ErrorCorrect = metrics.ErrorCorrection,
     };
     return encoder.Encode(text);
 }
Пример #36
0
 /// <summary>
 /// Gets a <see cref="T:Zen.Barcode.BarcodeMetrics"/> object containing default
 /// settings for the specified maximum bar height.
 /// </summary>
 /// <param name="maxHeight">The maximum barcode height.</param>
 /// <returns>
 /// A <see cref="T:Zen.Barcode.BarcodeMetrics"/> object.
 /// </returns>
 public override BarcodeMetrics GetDefaultMetrics(int maxHeight)
 {
     QRCodeEncoder temp = new QRCodeEncoder();
     return new BarcodeMetricsQr
         {
             Scale = temp.Scale,
             Version = temp.Version,
             EncodeMode = temp.EncodeMode,
             ErrorCorrection = temp.ErrorCorrect,
         };
 }
Пример #37
0
 private bool isQrCodeError(QRCodeEncoder qrCodeEncoder, String data)
 {
     try
     {
         qrCodeEncoder.calQrcode(Encoding.UTF8.GetBytes(data));
         return false;
     }
     catch
     {
         return true;
     }
 }
Пример #38
0
        /// <summary>
        /// 设置二维码参数
        /// </summary>
        private QRCodeEncoder SetQrCodeParam()
        {
            QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder();
            string encoding = cboEncoding.Text;
            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 = Convert.ToInt16(txtSize.Text);
                _qrCodeEncoder.QRCodeScale = scale;
            }
            catch (Exception ex)
            {
                MessageBox.Show("无效的大小!");
                return null;
            }
            try
            {
                //版本为0时,自动识别
                int version = 0;
                //int version = Convert.ToInt16(cboVersion.Text);
                _qrCodeEncoder.QRCodeVersion = version;
            }
            catch (Exception ex)
            {
                MessageBox.Show("无效的版本!");
            }

            string errorCorrect = cboCorrectionLevel.Text;//类型框
            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;

            return _qrCodeEncoder;
        }