C#窗体创建二维码

来源:互联网 发布:java gc日志分析工具 编辑:程序博客网 时间:2024/06/06 12:23

    先到http://download.csdn.net/detail/hhxin635612026/6989797,下载ThoughtWorks.QRCode.dll

1、先将dll文件放入debug下,路径如下图


2、导入dll文件到当前项目,点击添加引用

在浏览中bin->debug下找到ThoughtWorks.QRCode.dll,点击确定


项目中出现下图情况说明添加成功

3、程序编写,

   以下为封装的二维码生成类

using System;using System.Collections.Generic;using System.Linq;using System.Text;using ThoughtWorks.QRCode.Codec;using System.Drawing;namespace WindowsFormsApplication1{    class GenerateQRCode    {        /// <summary>        /// 生成QRcode二维码        /// </summary>        /// <param name="code">要编码的字符串</param>        /// <param name="size">生成图片的高度</param>        /// <returns>生成后的二维码图片</returns>        public static Bitmap 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 srcimage;        }    }}



4、生成二维码主要语句
 pictureBoxQRCode.Image = GenerateQRCode.GetQRCode(qrCode, 155);

就会在PictureBox控件上生成二维码,其中qrCode为二维码内容参数
      private void 创建ToolStripMenuItem_Click(object sender, EventArgs e)        {            comboBoxCodeType.SelectedIndex = 1;//非微信二维码            string timestamp = Convert.ToString(DateTimeExtensions.currentTimeMillis(DateTime.Now));//时间戳            INIClass inic = new INIClass(Application.StartupPath + @"\demo.ini");//初始化路径;            string token = inic.IniReadValue("Token", "token");//机构令牌            string fullName = textBoxFullname.Text;            string mob = textBoxMob.Text;            string qrCode = fullName + mob + token + timestamp;            textBoxQrCode.Text = qrCode;            pictureBoxQRCode.Image = GenerateQRCode.GetQRCode(qrCode, 155);            // MessageBox.Show(""+qrCode.Length);显示二维码长度        }






1 1
原创粉丝点击