ZXing.net 生成和解析二維碼


nuget引用zxing.net包

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
this.pictureBox1.Image = GetQRCodeByZXingNet("https://mp.weixin.qq.com/",238,238);
}
/// <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);
//string filename = @"C:\Users\test.png";
//result .Save(filename, ImageFormat.Png);
//result .Dispose();
}
catch (Exception ex)
{
//異常輸出
}
return result;
}
/// <summary>
/// 解碼二維碼
/// </summary>
/// <param name="barcodeBitmap">待解碼的二維碼圖片</param>
/// <returns>掃碼結果</returns>
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;
}

private void button2_Click(object sender, EventArgs e)
{
this.label1.Text = DecodeQrCode((Bitmap)this.pictureBox1.Image);
}
}

 

 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM