zoukankan      html  css  js  c++  java
  • C# 生产二维码QRCode(页面下载)

    引入包ThoughtWorks.QRCode

    using ThoughtWorks.QRCode.Codec;
      #region 生成二维码图片
            /// <summary>
            /// 生成二维码图片
            /// </summary>
            /// <param name="codeNumber">要生成二维码的字符串</param>     
            /// <param name="size">大小尺寸</param>
            /// <returns>二维码图片</returns>
            [HttpPost]
            public string CreateImgCode(string codeNumber, int size = 30)
            {
                //创建二维码生成类
                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
                //设置编码模式
                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
                //设置编码测量度
                qrCodeEncoder.QRCodeScale = size;
                //设置编码版本
                qrCodeEncoder.QRCodeVersion = 0;
                //设置编码错误纠正
                qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
                //生成二维码图片
                System.Drawing.Bitmap image = qrCodeEncoder.Encode(codeNumber);
                var imageUtl = ToBase64(image);
                return imageUtl;
            }
                //IMG识别Baser64
            private string ToBase64(Bitmap bmp)
            {
                try
                {
                    MemoryStream ms = new MemoryStream();
                    bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                    byte[] arr = new byte[ms.Length];
                    ms.Position = 0;
                    ms.Read(arr, 0, (int)ms.Length);
                    ms.Close();
                    String strbaser64 = Convert.ToBase64String(arr);
                    return strbaser64;
                }
                catch (Exception ex)
                {
                    System.Windows.MessageBox.Show("ImgToBase64String 转换失败 Exception:" + ex.Message);
                    return "";
                }
            } 
            #endregion

    页面:

    <img id="imgqrcode" src="" />
      var url = "data:image/png;base64," + data;  // 获取图片地址
      $("#imgqrcode").attr('src', url);//IMG赋值
    
    
    //下载图片
     var a = document.createElement('a');              // 创建一个a节点插入的document
            var event = new MouseEvent('click')               // 模拟鼠标click点击事件
            a.download = '二维码'                            // 设置a节点的download属性值,图片名称
            a.href = url ;                                     // 将图片的src赋值给a节点的href
            a.dispatchEvent(event);

    注意:图片URL中,(data)Base64前面需要加:

    data:image/png;base64,

    data表示取得数据的协定名称,image/png是数据类型名称,base64 是数据的编码方法,
    逗号后面是image/png文件base64编码后的数据.
    data:text/css;base64,base64编码的CSS代码
    data:text/javascript,Javascript代码
    data:text/javascript;base64,base64编码的Javascript代码
    data:image/gif;base64,base64编码的gif图片数据
    data:image/png;base64,base64编码的png图片数据
    data:image/jpeg;base64,base64编码的jpeg图片数据
    data:image/x-icon;base64,base64编码的icon图片数据

  • 相关阅读:
    VIM于换行EOL的思考
    wp7给图片和按钮添加背景图片
    wp7打开加速度传感器
    java值传递、引用传递
    keychron k1长时间不使用蓝牙,蓝牙连接不上解决方案
    IE浏览器切换64位和32位
    文件和注册表的重定向解决方法
    Windows C++遍历所有进程的命令行
    c++ fstream open 失败原因
    解析wrk压测工具
  • 原文地址:https://www.cnblogs.com/yueyongsheng/p/14655987.html
Copyright © 2011-2022 走看看