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 = @"wwwroot\Images\Code.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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM