asp.net 使用QRCoder 生成二维码详解

今天我们来讲一下QRCoder的使用,其实关于二维码的文章真的多的数不胜数,有很多写的很认真,很好。个人觉得还是QRcoder 要好用很多。废话不在啰嗦了,进入正题。

第一.引入包

1.可视化引入 工具-nuget包

asp.net 使用QRCoder 生成二维码详解

2.命令式引入通过控制台(在这里引入的是1.2 因为个人的vs 是2013 通过nuget报错,原因是1.3.3的版本太高)

asp.net 使用QRCoder 生成二维码详解

3.单独引入去官方地址下载

https://github.com/codebude/QRCoder/

https://www.nuget.org/packages/QRCoder/

二.生成方法类库

新建一个生成二维码的类

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Drawing;

using QRCoder;

using System.IO;

using System.Drawing.Imaging;

namespace Hl.dotNet.Utilities

{

    /// <summary>

    /// 生成二维码

    /// </summary>

    public class BaseQRCoder

    {

        /// <summary>

        /// 生成二维码

        /// string msg 二维码信息

        /// 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>

        /// <returns></returns>

        public static Bitmap createQRCoder(string msg, int pixelsPerModule, Color darkColor, Color lightColor, Bitmap icon = null, int iconSizePercent = 15, int iconBorderWidth = 6, bool drawQuietZones = true)

        {

            string strCode =msg;//二维码信息

            QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();//实例化二维码

            QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q, true, true);// 二维码信息属性设置

            QRCode qrcode = new QRCode(qrCodeData);//填充二维码

            Bitmap qrCodeImage = qrcode.GetGraphic(pixelsPerModule, darkColor, lightColor, icon, iconSizePercent, iconBorderWidth, drawQuietZones);//设置二维码的呈现形式

            return qrCodeImage;

        }

    }

}

    三.前台可视化操作

    四.生成二维码实现

      //二维码生成

        createQRcodeCreateFuc: function () {

            $(”

                

                var postData = null;

                var PostParam = {

                    ‘base_qrcoder’: JSON.stringify({

                        ‘Id’: getQueryString(“Id”),

                        ‘Name’: escape($(”

                        ‘Url’: $(”

                        ‘ObjectId’: $(”

                    })

                }

                //执行保存方法

                AjaxJson(areasURL + “/base_qrcoder/CreateCoder”, PostParam, function (data) {

                    //显示新生成的二维码

                   

                });

            });

        },

    后台实现:

     /// <summary>

            /// 生成二维码

            /// </summary>

            /// <returns></returns>

            public ResultMessage CreateCoder()

            {

                ResultMessage resultMessage = new ResultMessage(false, “失败”);

                try

                {

                    base_qrcoder base_qrcoderModel = new base_qrcoder();

                    base_qrcoderModel = (base_qrcoder)JsonConvert.DeserializeObject(this.Request[“base_qrcoder”].ToString(), typeof(base_qrcoder));

                    base_qrcoderModel.Name = Server.UrlDecode(base_qrcoderModel.Name);

                    base_qrcoderModel.Url = base_qrcoderModel.Url;

                    string msg = base_qrcoderModel.Url;

                    int pixelsPerModule = 5; //生成二维码图片的像素大小 

                    Color darkColor = Color.Black;//暗色   一般设置为Color.Black 黑色

                    Color lightColor = Color.White; //亮色   一般设置为Color.White  白色

                    Bitmap icon = new Bitmap(this.Server.MapPath(“/Upload/QRcoder/ICon/logo.png”));  //默认为NULL ,加上这个二维码中间会显示一个图标

                    int iconSizePercent = 20; //水印图标的大小比例 

                    int iconBorderWidth = 1;//水印图标的边框

                    bool drawQuietZones = true;//静止区,位于二维码某一边的空白边界,用来阻止读者获取与正在浏览的二维码无关的信息 即是否绘画二维码的空白边框区域 默认为true

                    //生成二维码

                    Bitmap bitmap = BaseQRCoder.createQRCoder(msg,pixelsPerModule,darkColor,lightColor,icon,iconSizePercent,iconBorderWidth,drawQuietZones);

                    //保存到文件夹

                    string RandKey = System.Guid.NewGuid().ToString();

                    string num = RandKey.Substring(0, 3);

                    string FileName = string.Concat(“/Upload/QRcoder/QRcodermages/”, DateTime.Now.ToString(“yyyyMMddhhmmss”) + num+”.”, ImageFormat.Jpeg).Trim();      

                    bitmap.Save(this.Server.MapPath(FileName));

                    base_qrcoderModel.ImgeUrl = FileName;

                    resultMessage = new ResultMessage(true, “成功”, 1, base_qrcoderModel);

                

                }

                catch (Exception ex)

                {

                    resultMessage = new ResultMessage(false, ex.ToString());

                }

                return resultMessage;

            }

    这样我们就生成了一个想要的二维码。

    asp.net 使用QRCoder 生成二维码详解》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:https://www.hashtobe.com/212.html