使用ZXing.dll,下載類庫,添加引用即可。
命名空間:using ZXing;
生成二維碼:
/// <summary>
/// 生成二維碼圖片
/// </summary>
/// <param name="strMessage">要生成二維碼的字符串</param>
/// <param name="width">二維碼圖片寬度</param>
/// <param name="height">二維碼圖片高度</param>
/// <returns></returns>
private Bitmap GetQRCodeByZXingNet(String strMessage, Int32 width, Int32 height)
{
Bitmap result = null;
try
{
BarcodeWriter barCodeWriter = new BarcodeWriter();
barCodeWriter.Format = BarcodeFormat.QR_CODE;
barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
barCodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
barCodeWriter.Options.Height = height;
barCodeWriter.Options.Width = width;
barCodeWriter.Options.Margin = 0;
ZXing.Common.BitMatrix bm = barCodeWriter.Encode(strMessage);
result = barCodeWriter.Write(bm);
}
catch (Exception ex)
{
//異常輸出
}
return result;
}
讀取二維碼:
///
/// 解碼二維碼
///
/// 待解碼的二維碼圖片
/// 掃碼結(jié)果
private string DecodeQrCode(Bitmap barcodeBitmap)
{
BarcodeReader reader = new BarcodeReader();
reader.Options.CharacterSet = "UTF-8";
var result = reader.Decode(barcodeBitmap);
return (result == null) ? null : result.Text;
}