Exemple #1
0
        /// <summary>
        /// 生成单个二维码
        /// </summary>
        /// <param name="subProjectId"></param>
        /// <param name="pixel"></param>
        /// <returns></returns>
        public Task <string> SaveQrCode(Guid subProjectId, int pixel = 4)
        {
            var generator = new QRCodeGenerator();
            var filePath  = GetQrCodePath(subProjectId);

            // 如果存在就不生成
            if (File.Exists(filePath))
            {
                return(Task.FromResult(filePath));
            }
            // 生成二维码
//            var url = "https://dotnet.holacodes.com/app/home/relational-info?id=" + subProjectId;
            // 获取租户信息
            var tenantId    = CurrentUnitOfWork.GetTenantId();
            var tenancyName = tenantId.HasValue ? _tenantManager.GetById((int)tenantId).TenancyName : null;
            // 在url里面填入租户名字
            var url    = $"https://dotnet.holacodes.com/public;tenancyName={tenancyName}/relational-info?id=" + subProjectId;
            var qrCode = new QRCode(generator.CreateQrCode(url, QRCodeGenerator.ECCLevel.M, true));
            var bitmap = qrCode.GetGraphic(pixel, Color.Black, Color.White, true);

            bitmap.Save(filePath, ImageFormat.Jpeg);
            // 释放资源
            qrCode.Dispose();
            bitmap.Dispose();
            generator.Dispose();
            return(Task.FromResult(filePath));
        }
Exemple #2
0
        public ActionResult QR_Button_Click(string LessonCode)
        {
            QRCodeGenerator qrgenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrgenerator.CreateQrCode(LessonCode, QRCodeGenerator.ECCLevel.Q);
            QRCode          qrCode      = new QRCode(qrCodeData);

            System.Web.UI.WebControls.Image imgQRcode = new System.Web.UI.WebControls.Image();
            imgQRcode.Width  = 500;
            imgQRcode.Height = 500;

            using (Bitmap qrCodeImage = qrCode.GetGraphic(20))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                    byte[] byteImage = ms.ToArray();
                    imgQRcode.ImageUrl = "data:image/png;base64, " + Convert.ToBase64String(byteImage);
                }
                ViewData["QRCodeImage"] = imgQRcode.ImageUrl;
                imgQRcode.Dispose();
                qrCodeData.Dispose();
                qrgenerator.Dispose();
                qrCode.Dispose();
                qrCodeData.Dispose();
                return(View("TestQR"));
            }
        }
Exemple #3
0
        private void GenerateGeoLocationQr(string lat, string longi)
        {
            try
            {
                Geolocation generator = new Geolocation(lat, longi);
                string      payload   = generator.ToString();

                QRCodeGenerator qrGenerator    = new QRCodeGenerator();
                QRCodeData      qrCodeData     = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
                QRCode          qrCode         = new QRCode(qrCodeData);
                var             qrCodeAsBitmap = qrCode.GetGraphic(20);

                if (save_image_geo)
                {
                    using (FolderBrowserDialog f = new FolderBrowserDialog())
                    {
                        if (f.ShowDialog() == DialogResult.OK)
                        {
                            qrCodeAsBitmap.Save(Path.Combine(f.SelectedPath, "qr-code-geolocation.png"));
                        }
                    }
                }
                GeoPic.Image = qrCodeAsBitmap;

                qrGenerator.Dispose();
                qrCode.Dispose();
                qrCodeData.Dispose();
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #4
0
        private void GenerateQRForBookMark(string name, string url)
        {
            Bookmark generator = new Bookmark(url, name);
            string   payload   = generator.ToString();

            QRCodeGenerator qrGenerator    = new QRCodeGenerator();
            QRCodeData      qrCodeData     = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
            QRCode          qrCode         = new QRCode(qrCodeData);
            Bitmap          qrCodeAsBitmap = qrCode.GetGraphic(20);

            if (save_image_book == true)
            {
                using (FolderBrowserDialog f = new FolderBrowserDialog())
                {
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        qrCodeAsBitmap.Save(Path.Combine(f.SelectedPath, "qr-code-bookmark.png"));
                    }
                }
            }

            bookPicture.Image = qrCodeAsBitmap;

            qrGenerator.Dispose();
            qrCode.Dispose();
            qrCodeData.Dispose();
        }
Exemple #5
0
        private void GenerateQRForUrl(string url)
        {
            try
            {
                Url    generator = new Url(url);
                string payload   = generator.ToString();

                QRCodeGenerator qrGenerator    = new QRCodeGenerator();
                QRCodeData      qrCodeData     = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
                QRCode          qrCode         = new QRCode(qrCodeData);
                Bitmap          qrCodeAsBitmap = qrCode.GetGraphic(20);

                if (save_image_url == true)
                {
                    using (FolderBrowserDialog f = new FolderBrowserDialog())
                    {
                        if (f.ShowDialog() == DialogResult.OK)
                        {
                            qrCodeAsBitmap.Save(Path.Combine(f.SelectedPath, "qr-code-url.png"));
                        }
                    }
                }

                pictureBoxUrl.Image = qrCodeAsBitmap;

                qrCode.Dispose();
                qrCodeData.Dispose();
                qrGenerator.Dispose();
            }
            catch (Exception e)
            {
                MetroSetMessageBox.Show(this, "An error : " + e.Message, "QR Creator");
            }
        }
Exemple #6
0
        /// <summary>
        /// 生成开箱,二维码图片,并返回byte数组.
        /// </summary>
        /// <param name="CodeStr">.</param>
        /// <returns>..</returns>
        public static byte[] OpenQRCodeBytes(string CodeStr)
        {
            if (string.IsNullOrWhiteSpace(CodeStr))
            {
                return(null);
            }

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(CodeStr, QRCodeGenerator.ECCLevel.Q);
            QRCode          qrCode      = new QRCode(qrCodeData);

            Bitmap qrCodeImage = qrCode.GetGraphic(20);
            Stream stream      = new MemoryStream();

            qrCodeImage.Save(stream, ImageFormat.Png);
            qrCode.Dispose();
            byte[] buffer = new byte[stream.Length];

            if (stream.CanWrite)
            {
                stream.Write(buffer, 0, buffer.Length);
            }

            stream.Dispose();

            return(buffer);
        }
Exemple #7
0
        public static ImageSource GetQRCode(string Text)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(Text, QRCodeGenerator.ECCLevel.L);
            QRCode          qrCode      = new QRCode(qrCodeData);
            ImageSource     IS          = Convert(qrCode.GetGraphic(5, "#000000", "#FFFFFF", false));

            qrCode.Dispose();
            GC.Collect();
            return(IS);
        }
Exemple #8
0
        private void button1_Click(object sender, EventArgs e)
        {
            Image barCodeImage = myBarcode.Encode(BarcodeLib.TYPE.CODE128, textBox1_barcode.Text);

            pictureBox_BarCode.Image = barCodeImage;
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCode          qrCode      = new QRCode(qrGenerator.CreateQrCode(textBox2_qrcode.Text, QRCodeGenerator.ECCLevel.Q));

            pictureBox_QRCode.Image = qrCode.GetGraphic(2, Color.Black, Color.White, false);
            qrGenerator.Dispose();
            qrCode.Dispose();
        }
Exemple #9
0
        public static Image QRCodeImage(string data)
        {
            Image           picQRCode;
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCode          qrCode      = new QRCode(qrGenerator.CreateQrCode(data,
                                                                              QRCodeGenerator.ECCLevel.Q));

            picQRCode = qrCode.GetGraphic(8, Color.Black, Color.White, false);
            qrGenerator.Dispose();
            qrCode.Dispose();
            return(picQRCode);
        }
        //二维码文本 -> 二维码图片
        private void getQRCodeImg(string qrCodeText, int pixelPerModel, string imgPath)
        {
            //QRCodeData qRCodeData = ;
            QRCodeGenerator qRCodeGenerator = new QRCodeGenerator();
            QRCode          qrCode          = new QRCode(qRCodeGenerator.CreateQrCode(qrCodeText, QRCodeGenerator.ECCLevel.M));

            //Bitmap qrCodeImg = qrCode.GetGraphic(pixelPerModel);
            qrCode.GetGraphic(pixelPerModel, Color.Black, Color.White, false).Save(imgPath);
            //qrCodeImg.Save(imgPath);

            qRCodeGenerator.Dispose();
            qrCode.Dispose();
        }
Exemple #11
0
        public IActionResult GetQrCode(string text, int size = 10)
        {
            var graphic = new QRCode(new QRCodeGenerator().CreateQrCode(text, QRCodeGenerator.ECCLevel.Q)).GetGraphic(size);

            base.Response.Body.Dispose();

            var memoryStream = new MemoryStream();

            graphic.Save(memoryStream, ImageFormat.Png);
            graphic.Dispose();

            return(File(memoryStream.ToArray(), "image/png"));
        }
Exemple #12
0
 void loadQR()
 {
     for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
     {
         QRCodeGenerator qr   = new QRCodeGenerator();
         string          Name = dataGridView1.Rows[i].Cells[1].Value.ToString();
         QRCode          qrC  = new QRCode(qr.CreateQrCode(Name, QRCodeGenerator.ECCLevel.Q));
         Image           QR   = qrC.GetGraphic(2, Color.Black, Color.White, false);
         imageListName.Images.Add(QR);
         listView2.Items.Add(Name, i);
         qr.Dispose();
         qrC.Dispose();
     }
     listView2.LargeImageList = imageListName;
 }
Exemple #13
0
        /// <summary>
        /// 批量生成二维码并下载,要把生成和下载分开的原因是:在文件下载的位置查询数据库,不建议这样做
        /// </summary>
        /// <param name="subProjectIds"></param>
        /// <param name="pixel"></param>
        /// <returns></returns>
        public Task SaveQrCodes(IEnumerable <Guid> subProjectIds, int pixel = 4)
        {
            var generator = new QRCodeGenerator();
            // 生成二维码,操作时间较长,获取hash名字做临时文件夹
            var hashName = MD5.Create().ComputeHash(Encoding.Default.GetBytes(DateTime.Now.ToLongTimeString()))
                           .ToString();
            var qrFolderPath = Path.Join(_hostingEnvironment.ContentRootPath, FileItemManager.FileItemsPath, hashName);

            Directory.CreateDirectory(qrFolderPath);
            foreach (var id in subProjectIds)
            {
//                var url = "https://dotnet.holacodes.com/app/home/relational-info?id=" + id;
                // 获取租户信息
                var tenantId    = CurrentUnitOfWork.GetTenantId();
                var tenancyName = tenantId.HasValue ? _tenantManager.GetById((int)tenantId).TenancyName : null;
                // 在url里面填入租户名字
                var url    = $"https://dotnet.holacodes.com/public;tenancyName={tenancyName}/relational-info?id=" + id;
                var qrCode = new QRCode(generator.CreateQrCode(url, QRCodeGenerator.ECCLevel.M, true));
                var bitmap = qrCode.GetGraphic(pixel, Color.Black, Color.White, true);
                bitmap.Save(Path.Join(qrFolderPath, id + ".jpg"), ImageFormat.Jpeg);
                qrCode.Dispose();
                bitmap.Dispose();
            }

            generator.Dispose();
            // 创建压缩文件
            var qrZipFile = GetQrCodesZipPath();

            if (File.Exists(qrZipFile))
            {
                File.Delete(qrZipFile);
            }
            System.IO.Compression.ZipFile.CreateFromDirectory(qrFolderPath, qrZipFile);
            // 删除临时文件
            if (Directory.Exists(qrFolderPath))
            {
                Directory.Delete(qrFolderPath, true);
            }
            return(Task.CompletedTask);
        }
Exemple #14
0
        public static bool GenerarQRManualmente(String RFCEmisor, String RFCReceptor, String Total, String UUID, String SelloCFD, out byte[] QRRes)
        {
            bool   Resultado = false;
            String QRTexto   = "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?&" + "id=" + UUID + "&fe=" + SelloCFD.Substring(SelloCFD.Length - 8, 8) + "&re=" + RFCEmisor + "&rr=" + RFCReceptor + "&tt=" + Total;

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(QRTexto, QRCodeGenerator.ECCLevel.M);
            QRCode          qrCode      = new QRCode(qrCodeData);

            System.IO.MemoryStream mem = new System.IO.MemoryStream();
            EncoderParameters      encoderParameters = new EncoderParameters(1);

            encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 75L);
            qrCode.GetGraphic(5).Save(mem, GetEncoder(ImageFormat.Jpeg), encoderParameters);
            QRRes     = mem.ToArray();
            Resultado = true;
            mem.Close();
            mem.Dispose();
            qrCode.Dispose();
            GC.WaitForFullGCComplete();
            return(Resultado);
        }
Exemple #15
0
        private void GenerateQRFromText(string text)
        {
            try
            {
                // Creating the elements here
                QRCodeGenerator qrGenerator = new QRCodeGenerator();
                QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
                QRCode          qrCode      = new QRCode(qrCodeData);
                Bitmap          qrCodeImage = qrCode.GetGraphic(20);

                // If user checks the check box saves the image with default name
                if (save_image_text == true)
                {
                    using (FolderBrowserDialog f = new FolderBrowserDialog())
                    {
                        if (f.ShowDialog() == DialogResult.OK)
                        {
                            qrCodeImage.Save(Path.Combine(f.SelectedPath, "qr-code-text.png"));
                        }
                    }
                }

                // show image
                pictureBoxText.Image = qrCodeImage;

                // free ram
                qrGenerator.Dispose();
                qrCodeData.Dispose();
                qrCode.Dispose();
            }
            //If ex is catched displat
            //TODO : Custom Mess
            // Not more showing the message but an fix for this error
            catch (Exception e)
            {
                MetroSetMessageBox.Show(this, "An error : " + e.Message, "QR Creator");
            }
        }
        /// <summary>
        /// Creates QR code generating task and gets it.
        /// </summary>
        /// <param name="recipeId">Recipe Id</param>
        /// <returns>QR code generation task</returns>
        private Task GetCreateTask(string recipeId)
        {
            var task = new Task(() =>
            {
                var qrCodeData = this._qrGenerator.CreateQrCode(recipeId, QRCodeGenerator.ECCLevel.Q);

                var qrCode = new QRCode(qrCodeData);

                var qrImage = qrCode.GetGraphic(20);

                var fileStream = File.Create($@"{this._path}\{recipeId}.jpg");

                qrImage.Save(fileStream, ImageFormat.Jpeg);

                fileStream.Dispose();
                qrImage.Dispose();
                qrCode.Dispose();
                qrCodeData.Dispose();
            });

            task.Start();

            return(task);
        }
Exemple #17
0
        /// <summary>
        /// QRコード生成処理
        /// </summary>
        /// <param name="pURL"></param>
        /// <returns></returns>
        private BitmapFrame CreateQRCode(string pURL)
        {
            // 処理結果
            BitmapFrame eResult = null;
            // ジェネレーターオブジェクト生成
            var eQRCodeGenerator = new QRCodeGenerator();
            // QRコードオブジェクト生成
            var eQRCodeData = eQRCodeGenerator.CreateQrCode(pURL, QRCodeGenerator.ECCLevel.Q);
            var eQRCode     = new QRCode(eQRCodeData);
            // Bitmap変換
            var eBitmapQrCode = eQRCode.GetGraphic(20);
            // リサイズ
            var eBitmap = new Bitmap(eBitmapQrCode, 350, 350);

            // QRコードオブジェクト破棄
            eQRCode.Dispose();
            // 画像の表示
            using (var eStream = new MemoryStream()) {
                eBitmap.Save(eStream, ImageFormat.Bmp);
                eStream.Seek(0, SeekOrigin.Begin);
                eResult = BitmapFrame.Create(eStream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
            }
            return(eResult);
        }
Exemple #18
0
        private void GenerateQRForWifi(string name, string password, string auth)
        {
            try
            {
                using (FolderBrowserDialog f = new FolderBrowserDialog())
                {
                    // if this is empty then this will not execute :
                    // TODO : Check the pass only on WPA or WEP
                    if (auth == "nopass")
                    {
                        WiFi   generator = new WiFi(name, password, WiFi.Authentication.nopass);
                        string payload   = generator.ToString();

                        QRCodeGenerator qrGenerator    = new QRCodeGenerator();
                        QRCodeData      qrCodeData     = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
                        QRCode          qrCode         = new QRCode(qrCodeData);
                        Bitmap          qrCodeAsBitmap = qrCode.GetGraphic(20);

                        if (save_image_wifi == true)
                        {
                            if (f.ShowDialog() == DialogResult.OK)
                            {
                                qrCodeAsBitmap.Save(Path.Combine(f.SelectedPath, "qr-code-wifi-no-pass.png"));
                            }
                        }

                        pictureBoxWifi.Image = qrCodeAsBitmap;

                        //free ram
                        qrGenerator.Dispose();
                        qrCodeData.Dispose();
                        qrCode.Dispose();
                        Clear();
                    }
                    else if (auth == "WPA")
                    {
                        WiFi   generator = new WiFi(name, password, WiFi.Authentication.WPA);
                        string payload   = generator.ToString();

                        QRCodeGenerator qrGenerator    = new QRCodeGenerator();
                        QRCodeData      qrCodeData     = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
                        QRCode          qrCode         = new QRCode(qrCodeData);
                        Bitmap          qrCodeAsBitmap = qrCode.GetGraphic(20);

                        if (save_image_wifi == true)
                        {
                            if (f.ShowDialog() == DialogResult.OK)
                            {
                                qrCodeAsBitmap.Save(Path.Combine(f.SelectedPath, "qr-code-wifi-pass.png"));
                            }
                        }
                        pictureBoxWifi.Image = qrCodeAsBitmap;
                        qrGenerator.Dispose();
                        qrCodeData.Dispose();
                        qrCode.Dispose();
                        Clear();
                    }
                    else if (auth == "WEP")
                    {
                        WiFi   generator = new WiFi(name, password, WiFi.Authentication.WEP);
                        string payload   = generator.ToString();

                        QRCodeGenerator qrGenerator    = new QRCodeGenerator();
                        QRCodeData      qrCodeData     = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
                        QRCode          qrCode         = new QRCode(qrCodeData);
                        Bitmap          qrCodeAsBitmap = qrCode.GetGraphic(20);

                        if (save_image_wifi == true)
                        {
                            if (f.ShowDialog() == DialogResult.OK)
                            {
                                qrCodeAsBitmap.Save(Path.Combine(f.SelectedPath, "qr-code-wifi-pass.png"));
                            }
                        }

                        pictureBoxWifi.Image = qrCodeAsBitmap;

                        qrGenerator.Dispose();
                        qrCodeData.Dispose();
                        qrCode.Dispose();
                        Clear();
                    }
                }
            }
            catch (Exception e)
            {
                MetroSetMessageBox.Show(this, "An error : " + e.Message, "QR Creator");
            }
        }