生成二维码组件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);
            }

 

posted on 2013-09-26 14:09  judy_ma0605  阅读(9375)  评论(2编辑  收藏  举报

导航