C#生成二维码

NewGet引用  ThoughtWorks.QRCode

 下载链接:https://files.cnblogs.com/files/rzm2wxm/ThoughtWorks.QRCode.rar?t=1679624362

一、纯文本无汉字生成

public Bitmap CodeImage(string str)
        {
            //实例化一个生成二维码的对象
            QRCodeEncoder qrEncoder = new QRCodeEncoder();
            //设置二维码的编码模式
            qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            //二维码像素宽度
            qrEncoder.QRCodeScale = 4;
            //设置版本
            qrEncoder.QRCodeVersion = 0;
            //根据内容生成二维码图像
            Bitmap image = null;
            image = qrEncoder.Encode(str);return image;
        }

二、纯文本有汉字生成

public Bitmap CodeImage(string str)
        {
            //实例化一个生成二维码的对象
            QRCodeEncoder qrEncoder = new QRCodeEncoder();
            //设置二维码的编码模式
            qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            //二维码像素宽度
            qrEncoder.QRCodeScale = 4;
            //设置版本
            qrEncoder.QRCodeVersion = 0;
            //根据内容生成二维码图像
            Bitmap image = null;           
            image = qrEncoder.Encode(str,Encoding.UTF8);  
            return image;
        }

三、纯文本无汉字,有图片生成

public Bitmap CodeImage_Logo(string str)
        {
            //实例化一个生成二维码的对象
            QRCodeEncoder qrEncoder = new QRCodeEncoder();
            //设置二维码的编码模式
            qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            //二维码像素宽度
            qrEncoder.QRCodeScale = 4;
            //设置版本
            qrEncoder.QRCodeVersion = 0;
            Bitmap image = null;
            image = qrEncoder.Encode(str);
            Bitmap logo = GetLogo();
            int x = image.Width;
            int y = image.Height;
            //设置logo图像位置
            Point point = new Point(x / 2 - 15, y / 2 - 15);
            //以二维码图像为背景绘制图像    
            Graphics g = Graphics.FromImage(image);
            g.DrawImage(logo, point);
            return image;
        }

四、纯文本有汉字,有图片生成

 

public Bitmap CodeImage_Logo(string str,Type type)
        {
            //实例化一个生成二维码的对象
            QRCodeEncoder qrEncoder = new QRCodeEncoder();
            //设置二维码的编码模式
            qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            //二维码像素宽度
            qrEncoder.QRCodeScale = 4;
            //设置版本
            qrEncoder.QRCodeVersion = 0;
            Bitmap image = null;
            image = qrEncoder.Encode(str, Encoding.UTF8);
            Bitmap logo = GetLogo();
            int x = image.Width;
            int y = image.Height;
            //设置logo图像位置
            Point point = new Point(x / 2 - 15, y / 2 - 15);
            //以二维码图像为背景绘制图像    
            Graphics g = Graphics.FromImage(image);
            g.DrawImage(logo, point);
            return image;
        }
 /// <summary>
        /// 要插入的logo图像
        /// </summary>
        /// <returns></returns>
        public Bitmap GetLogo()
        {
            if (this.pictureBox2.Image != null)
            {
                //获得logo图像
                Bitmap bmp = (Bitmap)this.pictureBox2.Image;
                //设置大小
                Bitmap newBmp = new Bitmap(bmp, 30, 30);
                return newBmp;
            }
            else
            {
                return null;
            }
        }

 

posted @ 2022-07-28 19:03  Smile丶品位  阅读(3634)  评论(5编辑  收藏  举报