zoukankan      html  css  js  c++  java
  • QRCoder生成二维码

    /* GetGraphic方法参数说明
                     public Bitmap GetGraphic(int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)
                 * 
                     int pixelsPerModule:生成二维码图片的像素大小 ,我这里设置的是5 
                 * 
                     Color darkColor:暗色   一般设置为Color.Black 黑色
                 * 
                     Color lightColor:亮色   一般设置为Color.White  白色
                 * 
                     Bitmap icon :二维码 水印图标 例如:Bitmap icon = new Bitmap(context.Server.MapPath("~/images/zs.png")); 默认为NULL ,加上这个二维码中间会显示一个图标
                 * 
                     int iconSizePercent: 水印图标的大小比例 ,可根据自己的喜好设置 
                 * 
                     int iconBorderWidth: 水印图标的边框
                 * 
                     bool drawQuietZones:静止区,位于二维码某一边的空白边界,用来阻止读者获取与正在浏览的二维码无关的信息 即是否绘画二维码的空白边框区域 默认为true
       */
             /// <summary>
            /// 
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            [HttpGet]
            public IActionResult SourceQRImg(string url)
            {
                QRCodeGenerator qrGenerator = new QRCodeGenerator();
    
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.H);
                QRCode qrCode = new QRCode(qrCodeData);
    
                Bitmap qrCodeImage = qrCode.GetGraphic(10, Color.Black, Color.White, null, 15, 6, true);
    
                var bitmapBytes = BitmapToBytes(qrCodeImage);        
                return File(bitmapBytes, "image/jpeg");
            }
    
            private static byte[] BitmapToBytes(Bitmap img)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    img.Save(stream, ImageFormat.Jpeg);
                    return stream.GetBuffer();
                }
            }
       [HttpGet]
            public FileResult GetNewImage(string code)
            {
                QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
                QRCode qrcode = new QRCode(qrCodeData);
    
                Bitmap qrCodeImage = qrcode.GetGraphic(5, Color.Black, Color.White, null, 15, 6, false);
                MemoryStream ms = new MemoryStream();
                qrCodeImage.Save(ms, ImageFormat.Jpeg);
    
                byte[] byData = new Byte[ms.Length];
                ms.Position = 0;
                ms.Read(byData, 0, byData.Length);
                ms.Close();
    
                return File(byData, @"image/jpeg");
            }
    存本地
             public IActionResult Index()
            {
                var data = "qr code";
                QRCodeGenerator qrGenerator = new QRCodeGenerator();
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.Q);
                QRCode qrCode = new QRCode(qrCodeData);
                Bitmap qrCodeImage = qrCode.GetGraphic(30);
    
                string outputFileName = @"wwwrootImagesCode.png";
                using (MemoryStream memory = new MemoryStream())
                {
                    using (FileStream fs = new FileStream(outputFileName, FileMode.Create, FileAccess.ReadWrite))
                    {
                        qrCodeImage.Save(memory, ImageFormat.Jpeg);
                        byte[] bytes = memory.ToArray();
                        fs.Write(bytes, 0, bytes.Length);
                    }
                }
    
                ViewBag.ImageUrl = outputFileName.Replace("wwwroot","");
                return View();                  
            }
    
            <div class="text-center">
        <img src="@ViewBag.ImageUrl"/>
    </div>
  • 相关阅读:
    声明式事务
    创建索引之代码开发
    Lucene实现全文检索的流程
    9)添加对话框的按键处理消息
    8)添加一个新的非模态对话框
    7)给tab下面添加一个子非模态对话框
    6)对(5)的代码进行一下修改 但是功能不变
    5)添加一个tab
    4)创建一个简单页面
    3)为啥(2)的代码那么写的原因
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/14009782.html
Copyright © 2011-2022 走看看