zoukankan      html  css  js  c++  java
  • 生成二维码组件thoughtworks.qrcode

    1 第三方组件DotNetBarcode。

    2 C#有支持winform和web用的thoughtworks.qrcode.dll

    3 使用前先添加引用thoughtworks.qrcode.dll

    4

         /// <summary>
           /// 生成QRcode二维码
           /// </summary>
           /// <param name="code">要编码的字符串</param>
           /// <param name="size">生成图片的高度</param>
           /// <returns>生成后的二维码图片</returns>
           public static System.IO.MemoryStream GetQRCode(string code, int size)
           {
               QRCodeEncoder qrEntity = new QRCodeEncoder();
    
               qrEntity.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码方式
    
               qrEntity.QRCodeScale = 10;//每个小方格的宽度
    
               qrEntity.QRCodeVersion = 5;//二维码版本号
    
               qrEntity.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//纠错码等级
    
               System.Drawing.Bitmap srcimage;
               //动态调整二维码版本号,上限40,过长返回空白图片,编码后字符最大字节长度2953
               while (true)
               {
                   try
                   {
                       srcimage = qrEntity.Encode(code, System.Text.Encoding.UTF8);
                       break; 
                   }
                   catch (IndexOutOfRangeException e)
                   {
                       if (qrEntity.QRCodeVersion < 40)
                       {
                           qrEntity.QRCodeVersion++;
                       }
                       else
                       {
                           srcimage = new Bitmap(100, 100);
                           break;
                       }
                   }
               }
               //为生成的二维码图像裁剪白边并调整为请求的高度
               return GetRealImage(srcimage, size);           
           }


    5

       System.IO.MemoryStream ms = new System.IO.MemoryStream();
    
                descode = "http://aaa.com/hh/“+id+".html";
    
                if (!string.IsNullOrEmpty(descode))
                {
                    ms = Common.Image.QRCode.GetQRCode(descode, size);
                }
  • 相关阅读:
    C#实体类对象修改日志记录
    C#中关于增强类功能的几种方式
    Elasticsearch入坑指南之RESTful API
    React入门实例
    .Net Core+Vue.js+ElementUI 实现前后端分离
    ElasticSearch入坑指南之概述及安装
    MySQL优化技巧
    RabbitMQ入门教程——路由(Routing)
    RabbitMQ入门教程——发布/订阅
    RabbitMQ入门教程——工作队列
  • 原文地址:https://www.cnblogs.com/judy0605/p/3340350.html
Copyright © 2011-2022 走看看