示例#1
0
        /// <summary>
        /// SVG二维码
        /// </summary>
        /// <param name="url"></param>
        /// <param name="pixel"></param>
        /// <returns></returns>
        public string GetSvgQRCode(string url, int pixel)
        {
            var qrCodeData = _generator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);
            var qrCode     = new SvgQRCode(qrCodeData);

            return(qrCode.GetGraphic(pixel));
        }
示例#2
0
        public void can_instantate_parameterless()
        {
            var svgCode = new SvgQRCode();

            svgCode.ShouldNotBeNull();
            svgCode.ShouldBeOfType <SvgQRCode>();
        }
示例#3
0
        public bool CreateQRCode(string str, QRCodeGenerator.ECCLevel eccLevel, System.Drawing.Size size)
        {
            if (string.IsNullOrEmpty(str))
            {
                return(false);
            }

            _qrdata = QrcodeGenerator.CreateQrCode(str, eccLevel);
            string svg = "";

            if (null != _qrdata)
            {
                SvgQRCode svgqrcode = new SvgQRCode(_qrdata);
                svg = svgqrcode.GetGraphic(size, Color.Black, Color.White);

                using (var stream = new MemoryStream(Encoding.Default.GetBytes(svg)))
                {
                    _svg = SvgDocument.Open <SvgDocument>(stream, null);
                    var g  = new SvgGroup();
                    var ls = _svg.Children.ToList();
                    _svg.Children.Clear();
                    foreach (var c in ls)
                    {
                        g.Children.Add(c);
                    }

                    _svg.Children.Add(g);
                }

                DrawCorner();
            }
            _svg.Write(@"d:\1.svg");
            _image = _svg.Draw();// CustomQRCode.QRCode.Util.Svg2Bitmap(_svg);
            return(true);
        }
示例#4
0
        public IViewComponentResult Invoke(string data)
        {
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);
            SvgQRCode  qrCode     = new SvgQRCode(qrCodeData);

            return(new HtmlContentViewComponentResult(new HtmlString(qrCode.GetGraphic(new Size(256, 256), "#000", "#f5f5f7", true, SvgQRCode.SizingMode.ViewBoxAttribute))));
        }
示例#5
0
        /// <summary>
        /// 生成svg格式的二维码图片
        /// </summary>
        /// <param name="plainText">转化为二维码的内容</param>
        /// <param name="pixel">像素</param>
        /// <returns></returns>
        public static string CreateQRCodeBySvg(string plainText, string savePath, int pixel = 10)
        {
            var generator  = new QRCodeGenerator();
            var qrCodeData = generator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
            var qrCode     = new SvgQRCode(qrCodeData);

            return(qrCode.GetGraphic(pixel));
        }
示例#6
0
        /// <summary>
        /// 绘制二维码
        /// </summary>
        /// <param name="content"></param>
        /// <returns>Svg</returns>
        public string RenderSvg(string content)
        {
            QRCodeGenerator generator = new QRCodeGenerator();
            QRCodeData      data      = generator.CreateQrCode(content, _eccLevel);
            var             qrCode    = new SvgQRCode(data);

            return(qrCode.GetGraphic(Config.Size, Config.DarkColor, Config.LightColor, Config.HasPadding));
        }
        private byte[] RenderSvg(QRCodeData data)
        {
            var qrCode = new SvgQRCode(data);

            var render = qrCode.GetGraphic(renderOptions.PixelsPerModule, renderOptions.DarkColour, renderOptions.LightColour, renderOptions.DrawQuietZones);

            return(Encoding.ASCII.GetBytes(render));
        }
示例#8
0
        public string GetSvgQRCode(string plainText, int pixel)
        {
            var generator  = new QRCodeGenerator();
            var qrCodeData = generator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
            var qrCode     = new SvgQRCode(qrCodeData);

            return(qrCode.GetGraphic(pixel));
        }
示例#9
0
        public IActionResult Details(string encode)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(encode, QRCodeGenerator.ECCLevel.Q);
            SvgQRCode       qrCode      = new SvgQRCode(qrCodeData);
            string          qrCodeAsSvg = qrCode.GetGraphic(5);

            return(Content(qrCodeAsSvg, "image/svg+xml"));
        }
示例#10
0
    public string GenerateQrCode(string input)
    {
        QRCodeGenerator qrGenerator = new QRCodeGenerator();
        QRCodeData      qrCodeData  = qrGenerator.CreateQrCode("The text which should be encoded.", QRCodeGenerator.ECCLevel.Q);
        SvgQRCode       qrCode      = new SvgQRCode(qrCodeData);
        string          qrCodeAsSvg = qrCode.GetGraphic(20);

        return(qrCodeAsSvg);
    }
示例#11
0
 public IActionResult GetQRCode(string data, int size = 180)
 {
     using (var qrGenerator = new QRCodeGenerator())
         using (var qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.L))
             using (var svgQrCode = new SvgQRCode(qrCodeData))
             {
                 var svgText = svgQrCode.GetGraphic(new Size(size, size), false, SvgQRCode.SizingMode.WidthHeightAttribute);
                 return(File(Encoding.UTF8.GetBytes(svgText), "image/svg+xml"));
             }
 }
示例#12
0
 public IActionResult QrCode(string data, int size = 168)
 {
     using (var qrGenerator = new QRCodeGenerator())
         using (var qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.L))
             using (var svgQrCode = new SvgQRCode(qrCodeData))
             {
                 var svgText = svgQrCode.GetGraphic(new Size(size, size));
                 return(File(Encoding.UTF8.GetBytes(svgText), "text/xml"));
             }
 }
 public ActionResult GetQrCode()
 {
     using (QRCoder.QRCodeGenerator gen = new QRCodeGenerator()) {
         using (var data = gen.CreateQrCode(Guid.NewGuid().ToString(), QRCodeGenerator.ECCLevel.L)) {
             using (QRCoder.SvgQRCode code = new SvgQRCode(data)) {
                 return(Content(code.GetGraphic(5), "image/svg+xml"));
             }
         }
     }
 }
示例#14
0
        public void can_render_svg_qrcode_without_quietzones_hex()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
            var svg  = new SvgQRCode(data).GetGraphic(10, "#000000", "#ffffff", false);

            var result = HelperFunctions.StringToHash(svg);

            result.ShouldBe("4ab0417cc6127e347ca1b2322c49ed7d");
        }
示例#15
0
        public void can_render_svg_qrcode_simple()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.L);
            var svg  = new SvgQRCode(data).GetGraphic(5);

            var result = HelperFunctions.StringToHash(svg);

            result.ShouldBe("5c251275a435a9aed7e591eb9c2e9949");
        }
示例#16
0
        public void can_render_svg_qrcode()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
            var svg  = new SvgQRCode(data).GetGraphic(10, Color.Red, Color.White);

            var result = HelperFunctions.StringToHash(svg);

            result.ShouldBe("1baa8c6ac3bd8c1eabcd2c5422dd9f78");
        }
示例#17
0
        public void can_render_svg_qrcode_viewbox_mode()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
            var svg  = new SvgQRCode(data).GetGraphic(new Size(128, 128));

            var result = HelperFunctions.StringToHash(svg);

            result.ShouldBe("56719c7db39937c74377855a5dc4af0a");
        }
示例#18
0
        public void can_render_svg_qrcode_viewbox_mode_viewboxattr()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
            var svg  = new SvgQRCode(data).GetGraphic(new Size(128, 128), sizingMode: SvgQRCode.SizingMode.ViewBoxAttribute);

            var result = HelperFunctions.StringToHash(svg);

            result.ShouldBe("788afdb693b0b71eed344e495c180b60");
        }
示例#19
0
        public void can_render_svg_qrcode_without_quietzones()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
            var svg  = new SvgQRCode(data).GetGraphic(10, Color.Red, Color.White, false);

            var result = HelperFunctions.StringToHash(svg);

            result.ShouldBe("2a582427d86b51504c08ebcbcf0472bd");
        }
示例#20
0
        // Render as SVG FORMAT
        private void button5_Click(object sender, EventArgs e)
        {
            var data = "SVG FORMAT";

            var qrCodeData       = new QRCodeGenerator().CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);
            var qrCode           = new SvgQRCode(qrCodeData);
            var qrCodeSvgContent = qrCode.GetGraphic(20); // Image as SVG data (GetGraphic returns an xml-string)

            File.WriteAllText(string.Format(QR_OUTPUT_TEMPLATE, "5").Replace(".jpg", ".svg"), qrCodeSvgContent);
            pictureBox1.Image = null;
        }
示例#21
0
        public IActionResult GetQrCodeForJoiningGame(GameId gameId)
        {
            var qrGenerator = new QRCodeGenerator();
            var host        = Request.Host;
            var payload     = new PayloadGenerator.Url($"{host}/gameControl/{gameId}/Anonymous");
            var qrCodeData  = qrGenerator.CreateQrCode(payload);
            var qrCode      = new SvgQRCode(qrCodeData);
            var qrCodeText  = qrCode.GetGraphic(10);
            var qrCodeBytes = Encoding.UTF8.GetBytes(qrCodeText);

            return(File(qrCodeBytes, "image/svg+xml"));
        }
示例#22
0
        private static void GenerateQRCode(string payloadString, QRCodeGenerator.ECCLevel eccLevel, string outputFileName, SupportedImageFormat imgFormat, int pixelsPerModule, string foreground, string background)
        {
            using (var generator = new QRCodeGenerator())
            {
                using (var data = generator.CreateQrCode(payloadString, eccLevel))
                {
                    switch (imgFormat)
                    {
                    case SupportedImageFormat.Png:
                    case SupportedImageFormat.Jpg:
                    case SupportedImageFormat.Gif:
                    case SupportedImageFormat.Bmp:
                    case SupportedImageFormat.Tiff:
                        using (var code = new QRCode(data))
                        {
                            using (var bitmap = code.GetGraphic(pixelsPerModule, foreground, background, true))
                            {
                                var actualFormat = new OptionSetter().GetImageFormat(imgFormat.ToString());
                                bitmap.Save(outputFileName, actualFormat);
                            }
                        }
                        break;

                    case SupportedImageFormat.Svg:
                        using (var code = new SvgQRCode(data))
                        {
                            var test = code.GetGraphic(pixelsPerModule, foreground, background, true);
                            using (var f = File.CreateText(outputFileName))
                            {
                                f.Write(test);
                                f.Flush();
                            }
                        }
                        break;

                    case SupportedImageFormat.Xaml:
                        using (var code = new XamlQRCode(data))
                        {
                            var test = XamlWriter.Save(code.GetGraphic(pixelsPerModule, foreground, background, true));
                            using (var f = File.CreateText(outputFileName))
                            {
                                f.Write(test);
                                f.Flush();
                            }
                        }
                        break;

                    default:
                        throw new ArgumentOutOfRangeException(nameof(imgFormat), imgFormat, null);
                    }
                }
            }
        }
示例#23
0
        public IActionResult Join(Guid gameId)
        {
            var generator = new PayloadGenerator.Url($"{Request.Scheme}://{Request.Host}{Request.PathBase}/client/{gameId}");
            var payload   = generator.ToString();

            var qrGenerator = new QRCodeGenerator();
            var qrCodeData  = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
            var qrCode      = new SvgQRCode(qrCodeData);
            var qrCodeAsSvg = qrCode.GetGraphic(5);

            return(Content(qrCodeAsSvg, "image/svg+xml; charset=utf-8"));
        }
示例#24
0
        public void can_render_svg_qrcode()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
            var svg  = new SvgQRCode(data).GetGraphic(10, Color.Red, Color.White);

            var md5    = new MD5CryptoServiceProvider();
            var hash   = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(svg));
            var result = BitConverter.ToString(hash).Replace("-", "").ToLower();

            result.ShouldBe("0ad8bc75675d04ba0caff51c7a89992c");
        }
示例#25
0
        public void can_render_svg_qrcode_without_quietzones()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
            var svg  = new SvgQRCode(data).GetGraphic(10, Color.Red, Color.White, false);

            var md5    = new MD5CryptoServiceProvider();
            var hash   = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(svg));
            var result = BitConverter.ToString(hash).Replace("-", "").ToLower();

            result.ShouldBe("24392f47d4c1c2c5097bd6b3f8eefccc");
        }
示例#26
0
        /// <summary>
        /// Generate SVG String of the qr for the given text
        /// </summary>
        /// <param name="text">The text to generate the QR</param>
        /// <returns>SVG Image String of generated QR</returns>
        public string GenerateSvgString(string text)
        {
            var qrCodeData = _qrCodeGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.H);
            var qrCodeSvg  = new SvgQRCode(qrCodeData);

            var svgString = qrCodeSvg.GetGraphic(
                viewBox: new Size(width: 1, height: 1),
                drawQuietZones: true,
                sizingMode: SvgQRCode.SizingMode.ViewBoxAttribute
                );

            return(svgString);
        }
示例#27
0
        public Task <string> EncodeSvg(string content, int pixelPerModule = ImagingConstants.DefaultQRCodePixelPerModule)
        {
            if (pixelPerModule < ImagingConstants.MinimalQRCodePixelPerModule)
            {
                pixelPerModule = ImagingConstants.DefaultQRCodePixelPerModule;
            }

            var    qrcodeData  = this.GetQRCodeData(content);
            var    qrcode      = new SvgQRCode(qrcodeData);
            string qrcodeImage = qrcode.GetGraphic(pixelPerModule);

            return(Task.FromResult(qrcodeImage));
        }
示例#28
0
        public void can_render_svg_qrcode_with_svg_logo_image_tag()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);

            //Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909361
            var logoSvg = File.ReadAllText(GetAssemblyPath() + "\\assets\\noun_Scientist_2909361.svg");
            var logoObj = new SvgQRCode.SvgLogo(logoSvg, 20, iconEmbedded: false);

            var svg = new SvgQRCode(data).GetGraphic(10, Color.DarkGray, Color.White, logo: logoObj);

            var result = HelperFunctions.StringToHash(svg);

            result.ShouldBe("bd442ea77d45a41a4f490b8d41591e04");
        }
示例#29
0
        public void can_render_svg_qrcode_with_png_logo()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);

            //Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909346
            var logoBitmap = (Bitmap)Bitmap.FromFile(GetAssemblyPath() + "\\assets\\noun_software engineer_2909346.png");
            var logoObj    = new SvgQRCode.SvgLogo(logoBitmap, 15);

            var svg = new SvgQRCode(data).GetGraphic(10, Color.DarkGray, Color.White, logo: logoObj);

            var md5    = new MD5CryptoServiceProvider();
            var hash   = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(svg));
            var result = BitConverter.ToString(hash).Replace("-", "").ToLower();

            result.ShouldBe("4ff45872787f321524cc4d071239c25e");
        }
示例#30
0
        public void can_render_svg_qrcode_with_svg_logo()
        {
            //Create QR code
            var gen  = new QRCodeGenerator();
            var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);

            //Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909361
            var logoSvg = File.ReadAllText(GetAssemblyPath() + "\\assets\\noun_Scientist_2909361.svg");
            var logoObj = new SvgQRCode.SvgLogo(logoSvg, 30);

            var svg = new SvgQRCode(data).GetGraphic(10, Color.DarkGray, Color.White, logo: logoObj);

            var md5    = new MD5CryptoServiceProvider();
            var hash   = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(svg));
            var result = BitConverter.ToString(hash).Replace("-", "").ToLower();

            result.ShouldBe("b4ded3964e2e640b6b6c74d1c89d71fa");
        }