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; } }