C#利用zxing.net操作二维码和条形码

来源:互联网 发布:淘宝客活动广场靠谱吗 编辑:程序博客网 时间:2024/06/07 23:51

下载地址: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.     public partial class Form1 : Form 
  15.     { 
  16.         EncodingOptions options = null
  17.         BarcodeWriter writer = null
  18.  
  19.         public Form1() 
  20.         { 
  21.             InitializeComponent(); 
  22.             options = new QrCodeEncodingOptions 
  23.             { 
  24.                 DisableECI = true
  25.                 CharacterSet = "UTF-8"
  26.                 Width = pictureBoxQr.Width, 
  27. Height = pictureBoxQr.Height
  28.             }; 
  29.             writer = new BarcodeWriter(); 
  30.             writer.Format = BarcodeFormat.QR_CODE; 
  31.             writer.Options = options; 
  32.         } 
  33.  
  34.         private void buttonQr_Click(object sender, EventArgs e) 
  35.         { 
  36.             if (textBoxText.Text == string.Empty) 
  37.             { 
  38.                 MessageBox.Show("输入内容不能为空!"); 
  39.                 return
  40.             } 
  41.             Bitmap bitmap = writer.Write(textBoxText.Text); 
  42.             pictureBoxQr.Image = bitmap; 
  43.         } 
  44.     } 

效果:



将字符编码时可以指定字符格式;默认为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.     public partial class Form1 : Form 
  15.     { 
  16.         EncodingOptions options = null
  17.         BarcodeWriter writer = null
  18.  
  19.         public Form1() 
  20.         { 
  21.             InitializeComponent(); 
  22.             options = new EncodingOptions 
  23.             { 
  24.                 //DisableECI = true, 
  25.                 //CharacterSet = "UTF-8", 
  26.                 Width = pictureBoxQr.Width, 
  27.                 Height = pictureBoxQr.Height 
  28.             }; 
  29.             writer = new BarcodeWriter(); 
  30.             writer.Format = BarcodeFormat.ITF; 
  31.             writer.Options = options; 
  32.         } 
  33.  
  34.         private void buttonQr_Click(object sender, EventArgs e) 
  35.         { 
  36.             if (textBoxText.Text == string.Empty) 
  37.             { 
  38.                 MessageBox.Show("输入内容不能为空!"); 
  39.                 return
  40.             } 
  41.             Bitmap bitmap = writer.Write(textBoxText.Text); 
  42.             pictureBoxQr.Image = bitmap; 
  43.         } 
  44.     } 

效果:


输入字符串需要符合编码的格式,不然会报错。
解码方式:
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.     public partial class Form1 : Form 
  15.     { 
  16.         BarcodeReader reader = null
  17.    
  18.         public Form1() 
  19.         { 
  20.             InitializeComponent(); 
  21.             reader = new BarcodeReader(); 
  22.         } 
  23.    
  24.         private void Form1_DragEnter(object sender, DragEventArgs e)//当拖放进入窗体 
  25.         { 
  26.             if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
  27.                 e.Effect = DragDropEffects.Copy;    //显示拷贝效应 
  28.             else 
  29.                 e.Effect = DragDropEffects.None;   
  30.         } 
  31.    
  32.         private void Form1_DragDrop(object sender, DragEventArgs e)//当拖放放在窗体上 
  33.         { 
  34.             string[] fileNames = (string[])e.Data.GetData(DataFormats.FileDrop,false); //获取文件名 
  35.             if (fileNames.Length > 0) 
  36.             { 
  37.                 pictureBoxPic.Load(fileNames[0]);   //显示图片 
  38.                 Result result = reader.Decode((Bitmap)pictureBoxPic.Image);//通过reader解码 
  39.                 textBoxText.Text = result.Text; //显示解析结果 
  40.             } 
  41.         } 
  42.     } 


  • 大小: 30.9 KB
  • 大小: 29.7 KB
  • 大小: 25.7 KB
  • zxingDecoder.zip (401.4 KB)
  • 下载次数: 33
  • zxingEncoder.zip (395.8 KB)
  • 下载次数: 35
  • 查看图片附件
0 0