生成二維碼組件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);
            }

 


免責聲明!

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



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