nuget引用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); } }