1,需要用到的开发包 ThoughtWorks.QRCode.dll
下载地址:http://pan.baidu.com/s/1hqlCXgC
2,主要代码:
using ThoughtWorks.QRCode.Codec;
方式一:直接返回图片流到浏览器
public void GenerteImageResult2()
{
string GUID = "";
string str = "哈哈,这是二维码信息!";//要写入的二维码信息
//生成二维码
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码格式:ALPHA_NUMERIC,NUMERIC,BYTE
qrCodeEncoder.QRCodeScale = 8;//二维码大小,自定义
qrCodeEncoder.QRCodeVersion = 0;//二维码版本
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//有H,L,M,Q可选,错误机制级别
Image image = qrCodeEncoder.Encode(str, Encoding.Default);
//ImageResult result = new ImageResult(image);
Response.ContentType = "image/jpeg";
image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
方式二:构造返回函数
public ActionResult GenerteImageResult()
{
string GUID = "";
string str = "哈哈,这是二维码信息!";//要写入的二维码信息
//生成二维码
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码格式:ALPHA_NUMERIC,NUMERIC,BYTE
qrCodeEncoder.QRCodeScale = 8;//二维码大小,自定义
qrCodeEncoder.QRCodeVersion = 0;//二维码版本
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//有H,L,M,Q可选,错误机制级别
Image image = qrCodeEncoder.Encode(str, Encoding.Default);//image 就是生成的二维码图片,可以按照自己的方式去保存,这里直接显示到网页
ImageResult result = new ImageResult(image);
return result;
}
//构造返回信息流
public class ImageResult : ActionResult
{
// 图片
public Image imageData;
// 构造器
public ImageResult(Image image)
{
imageData = image;
}
// 主要需要重写的方法
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
HttpResponseBase response = context.HttpContext.Response;
// 设置 HTTP Header
response.ContentType = "image/jpeg";
// 将图片数据写入Response
imageData.Save(context.HttpContext.Response.OutputStream, ImageFormat.Jpeg);
}
}