C#利用zxing.net操作二維碼和條形碼


下載地址:http://zxingnet.codeplex.com/

zxing.net是.net平台下編解條形碼和二維碼的工具,使用非常方便。

首先下載二進制dll文件,引入工程;

代碼:

C#代碼   收藏代碼
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8. using ZXing.QrCode;  
  9. using ZXing;  
  10. using ZXing.Common;  
  11. using ZXing.Rendering;  
  12.   
  13. namespace zxingTest  
  14. {  
  15.     public partial class Form1 : Form  
  16.     {  
  17.         EncodingOptions options = null;  
  18.         BarcodeWriter writer = null;  
  19.   
  20.         public Form1()  
  21.         {  
  22.             InitializeComponent();  
  23.             options = new QrCodeEncodingOptions  
  24.             {  
  25.                 DisableECI = true,  
  26.                 CharacterSet = "UTF-8",  
  27.                 Width = pictureBoxQr.Width,  
  28.                 Height = pictureBoxQr.Height  
  29.             };  
  30.             writer = new BarcodeWriter();  
  31.             writer.Format = BarcodeFormat.QR_CODE;  
  32.             writer.Options = options;  
  33.         }  
  34.   
  35.         private void buttonQr_Click(object sender, EventArgs e)  
  36.         {  
  37.             if (textBoxText.Text == string.Empty)  
  38.             {  
  39.                 MessageBox.Show("輸入內容不能為空!");  
  40.                 return;  
  41.             }  
  42.             Bitmap bitmap = writer.Write(textBoxText.Text);  
  43.             pictureBoxQr.Image = bitmap;  
  44.         }  
  45.     }  
  46. }  

 效果:



 將字符編碼時可以指定字符格式;默認為ISO-8859-1英文字符集,但一般移動設備常用UTF-8字符集編碼,

可以通過QrCodeEncodingOptions設置編碼方式。

如果要生成其他zxing支持的條形碼,只要修改BarcodeWriter.Format就可以了。

C#代碼   收藏代碼
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8. using ZXing.QrCode;  
  9. using ZXing;  
  10. using ZXing.Common;  
  11. using ZXing.Rendering;  
  12.   
  13. namespace zxingTest  
  14. {  
  15.     public partial class Form1 : Form  
  16.     {  
  17.         EncodingOptions options = null;  
  18.         BarcodeWriter writer = null;  
  19.   
  20.         public Form1()  
  21.         {  
  22.             InitializeComponent();  
  23.             options = new EncodingOptions  
  24.             {  
  25.                 //DisableECI = true,  
  26.                 //CharacterSet = "UTF-8",  
  27.                 Width = pictureBoxQr.Width,  
  28.                 Height = pictureBoxQr.Height  
  29.             };  
  30.             writer = new BarcodeWriter();  
  31.             writer.Format = BarcodeFormat.ITF;  
  32.             writer.Options = options;  
  33.         }  
  34.   
  35.         private void buttonQr_Click(object sender, EventArgs e)  
  36.         {  
  37.             if (textBoxText.Text == string.Empty)  
  38.             {  
  39.                 MessageBox.Show("輸入內容不能為空!");  
  40.                 return;  
  41.             }  
  42.             Bitmap bitmap = writer.Write(textBoxText.Text);  
  43.             pictureBoxQr.Image = bitmap;  
  44.         }  
  45.     }  
  46. }  

 

效果:


 輸入字符串需要符合編碼的格式,不然會報錯。
解碼方式:
C#代碼   收藏代碼
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8. using ZXing.QrCode;  
  9. using ZXing;  
  10. using ZXing.Common;  
  11. using ZXing.Rendering;  
  12.     
  13. namespace zxingTest  
  14. {  
  15.     public partial class Form1 : Form  
  16.     {  
  17.         BarcodeReader reader = null;  
  18.     
  19.         public Form1()  
  20.         {  
  21.             InitializeComponent();  
  22.             reader = new BarcodeReader();  
  23.         }  
  24.     
  25.         private void Form1_DragEnter(object sender, DragEventArgs e)//當拖放進入窗體  
  26.         {  
  27.             if (e.Data.GetDataPresent(DataFormats.FileDrop))  
  28.                 e.Effect = DragDropEffects.Copy;    //顯示拷貝效應  
  29.             else  
  30.                 e.Effect = DragDropEffects.None;    
  31.         }  
  32.     
  33.         private void Form1_DragDrop(object sender, DragEventArgs e) //當拖放放在窗體上  
  34.         {  
  35.             string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop, false); //獲取文件名  
  36.             if (fileNames.Length > 0)  
  37.             {  
  38.                 pictureBoxPic.Load(fileNames[0]);   //顯示圖片  
  39.                 Result result = reader.Decode((Bitmap)pictureBoxPic.Image); //通過reader解碼  
  40.                 textBoxText.Text = result.Text; //顯示解析結果  
  41.             }  
  42.         }  
  43.     }  
  44. }  
 

 


免責聲明!

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



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