1 第三方组件DotNetBarcode。
2 C#有支持winform和web用的thoughtworks.qrcode.dll
3 使用前先添加引用thoughtworks.qrcode.dll
4
/// <summary> /// 生成QRcode二维码 /// </summary> /// <param name="code">要编码的字符串</param> /// <param name="size">生成图片的高度</param> /// <returns>生成后的二维码图片</returns> public static System.IO.MemoryStream GetQRCode(string code, int size) { QRCodeEncoder qrEntity = new QRCodeEncoder(); qrEntity.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码方式 qrEntity.QRCodeScale = 10;//每个小方格的宽度 qrEntity.QRCodeVersion = 5;//二维码版本号 qrEntity.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//纠错码等级 System.Drawing.Bitmap srcimage; //动态调整二维码版本号,上限40,过长返回空白图片,编码后字符最大字节长度2953 while (true) { try { srcimage = qrEntity.Encode(code, System.Text.Encoding.UTF8); break; } catch (IndexOutOfRangeException e) { if (qrEntity.QRCodeVersion < 40) { qrEntity.QRCodeVersion++; } else { srcimage = new Bitmap(100, 100); break; } } } //为生成的二维码图像裁剪白边并调整为请求的高度 return GetRealImage(srcimage, size); }
5
System.IO.MemoryStream ms = new System.IO.MemoryStream(); descode = "http://aaa.com/hh/“+id+".html"; if (!string.IsNullOrEmpty(descode)) { ms = Common.Image.QRCode.GetQRCode(descode, size); }