添加引用
添加对ThoughtWorks.QRCode.dll的引用
创建二维码:
创建二维码主要用到下面这两句代码:
Bitmap bt;
string enCodeString = nr;//需要生成的字符串
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();//引用dll自带类
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);//调用Encode方法生成一个Bitmap对象,可以选择编码格式
下面是吧生成的二维码以图片保存本地:
private void create_two(string nr)
{
Bitmap bt;
string enCodeString = nr;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
string path = @"D:\web\images_00_weixin\images-wx\";//保存地址
string filename = "Codec" + DateTime.Now.ToString();//图片名称
//除去特殊字符
filename = filename.Replace(" ", "");
filename = filename.Replace(":", "");
filename = filename.Replace("-", "");
filename = filename.Replace(".", "");
bt.Save(path + filename + ".jpg");//保存jpg格式图片
}
如果不需要保存本地,可动态生成,输出图片的二进制流:
Bitmap bt = new Bitmap(280, 280);
try
{
string enCodeString = nr;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
//创建内存流用于输出图片
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
//图片格式制定为png
bt.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
//清除缓冲区流中的所有输出
Response.ClearContent();
//输出流的HTTP MIME类型设置为"image/Png"
Response.ContentType = "image/Png";
//输出图片的二进制流
Response.BinaryWrite(ms.ToArray());
}
}
finally
{
//释放Bitmap对象
bt.Dispose();
}