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