1、利用 ThoughtWorks.QRCode.dll 组件生成(目前比较流行的)
2、话不多说,写了个简单实例(控制台程序),代码如下
using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
const string data = "http://www.csdn.net"; //二维码写入数据
string filepath = string.Format("d:/{0}.jpg", Guid.NewGuid()); //保存路径
//创建二维码生成类
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置编码模式
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置编码测量度
qrCodeEncoder.QRCodeScale = 10;
//设置编码版本
qrCodeEncoder.QRCodeVersion = 0;
//注意编码,防止乱码出现
Image image = qrCodeEncoder.Encode(data, Encoding.UTF8);
image.Save(filepath, System.Drawing.Imaging.ImageFormat.Jpeg);
image.Dispose();
}
}
}
3、代码执行后效果图
4、补:二维码中间加入图片,代码如下(控制台程序实例)
using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
const string data = "http://www.csdn.net"; //二维码写入数据
string filepath = string.Format("d:/{0}.jpg", Guid.NewGuid()); //保存路径
const string mypic = "d:/menffy.jpg"; //我的图片
const float multiple = 4; //二维码是图片的4倍
//创建二维码生成类
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置编码模式
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置编码测量度
qrCodeEncoder.QRCodeScale = 50;
//设置编码版本
qrCodeEncoder.QRCodeVersion = 7;
//注意编码,防止乱码出现
Image image = qrCodeEncoder.Encode(data, Encoding.UTF8);
//image.Save(filepath, System.Drawing.Imaging.ImageFormat.Jpeg);
//载入我的图片
Image myImage = Image.FromFile(mypic);
//计算图片大小
float w = image.Width / multiple;
float pw = w / myImage.Width;
float ph = w / myImage.Height;
if (pw > ph)
{
pw = ph;
}
int mw = (int)(pw * myImage.Width);
int mh = (int)(pw * myImage.Height);
//计算图片在二维上的x,y坐标
int x = (image.Width - mw) / 2;
int y = (image.Height - mh) / 2;
Graphics graphics = Graphics.FromImage(image);
graphics.DrawImage(myImage, x, y, mw, mh);
image.Save(filepath, System.Drawing.Imaging.ImageFormat.Jpeg);
image.Dispose();
myImage.Dispose();
graphics.Dispose();
}
}
}
5、加入图片后效果