下載地址:http://zxingnet./
zxing.net是.net平臺(tái)下編解條形碼和二維碼的工具,使用非常方便。
首先下載二進(jìn)制dll文件,引入工程;
代碼:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using ZXing.QrCode;
- using ZXing;
- using ZXing.Common;
- using ZXing.Rendering;
-
- namespace zxingTest
- {
- public partial class Form1 : Form
- {
- EncodingOptions options = null;
- BarcodeWriter writer = null;
-
- public Form1()
- {
- InitializeComponent();
- options = new QrCodeEncodingOptions
- {
- DisableECI = true,
- CharacterSet = "UTF-8",
- Width = pictureBoxQr.Width,
- Height = pictureBoxQr.Height
- };
- writer = new BarcodeWriter();
- writer.Format = BarcodeFormat.QR_CODE;
- writer.Options = options;
- }
-
- private void buttonQr_Click(object sender, EventArgs e)
- {
- if (textBoxText.Text == string.Empty)
- {
- MessageBox.Show("輸入內(nèi)容不能為空!");
- return;
- }
- Bitmap bitmap = writer.Write(textBoxText.Text);
- pictureBoxQr.Image = bitmap;
- }
- }
- }
效果:
 將字符編碼時(shí)可以指定字符格式;默認(rèn)為ISO-8859-1英文字符集,但一般移動(dòng)設(shè)備常用UTF-8字符集編碼,
可以通過QrCodeEncodingOptions設(shè)置編碼方式。
如果要生成其他zxing支持的條形碼,只要修改BarcodeWriter.Format就可以了。
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using ZXing.QrCode;
- using ZXing;
- using ZXing.Common;
- using ZXing.Rendering;
-
- namespace zxingTest
- {
- public partial class Form1 : Form
- {
- EncodingOptions options = null;
- BarcodeWriter writer = null;
-
- public Form1()
- {
- InitializeComponent();
- options = new EncodingOptions
- {
- //DisableECI = true,
- //CharacterSet = "UTF-8",
- Width = pictureBoxQr.Width,
- Height = pictureBoxQr.Height
- };
- writer = new BarcodeWriter();
- writer.Format = BarcodeFormat.ITF;
- writer.Options = options;
- }
-
- private void buttonQr_Click(object sender, EventArgs e)
- {
- if (textBoxText.Text == string.Empty)
- {
- MessageBox.Show("輸入內(nèi)容不能為空!");
- return;
- }
- Bitmap bitmap = writer.Write(textBoxText.Text);
- pictureBoxQr.Image = bitmap;
- }
- }
- }
效果:
 輸入字符串需要符合編碼的格式,不然會(huì)報(bào)錯(cuò)。
解碼方式:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using ZXing.QrCode;
- using ZXing;
- using ZXing.Common;
- using ZXing.Rendering;
-
- namespace zxingTest
- {
- public partial class Form1 : Form
- {
- BarcodeReader reader = null;
-
- public Form1()
- {
- InitializeComponent();
- reader = new BarcodeReader();
- }
-
- private void Form1_DragEnter(object sender, DragEventArgs e)//當(dāng)拖放進(jìn)入窗體
- {
- if (e.Data.GetDataPresent(DataFormats.FileDrop))
- e.Effect = DragDropEffects.Copy; //顯示拷貝效應(yīng)
- else
- e.Effect = DragDropEffects.None;
- }
-
- private void Form1_DragDrop(object sender, DragEventArgs e) //當(dāng)拖放放在窗體上
- {
- string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop, false); //獲取文件名
- if (fileNames.Length > 0)
- {
- pictureBoxPic.Load(fileNames[0]); //顯示圖片
- Result result = reader.Decode((Bitmap)pictureBoxPic.Image); //通過reader解碼
- textBoxText.Text = result.Text; //顯示解析結(jié)果
- }
- }
- }
- }
|