• 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. }  
     

     
  • 相关阅读:
    JQuery学习之(一)概述
    Ajax:拥抱JSON,让XML走开(转)
    .Net下采用GET/POST/SOAP方式动态调用WebService的简易灵活方法(C#)
    Nunit使用手记
    ajax常见问题总结
    单例模式代码
    asp.net网站url伪静态重写技术的实现
    WCF 基础加开发简介
    ExtJS调用WCF实现JSON传递
    lock 语句(C# 参考)
  • 原文地址:https://www.cnblogs.com/mili3/p/3978782.html
Copyright © 2020-2023  润新知