C#利用zxing.net操作二维码和条形码
2016-04-25 14:49
716 查看
下载地址:http://zxingnet.codeplex.com/
zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便。
首先下载二进制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("输入内容不能为空!");
return;
}
Bitmap bitmap = writer.Write(textBoxText.Text);
pictureBoxQr.Image = bitmap;
}
}
}
效果:
将字符编码时可以指定字符格式;默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符集编码,
可以通过QrCodeEncodingOptions设置编码方式。
如果要生成其他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
{
BarcodeReader reader = null;
public Form1()
{
InitializeComponent();
reader = new BarcodeReader();
}
private void Form1_DragEnter(object sender, DragEventArgs e)//当拖放进入窗体
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy; //显示拷贝效应
else
e.Effect = DragDropEffects.None;
}
private void Form1_DragDrop(object sender, DragEventArgs e) //当拖放放在窗体上
{
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; //显示解析结果
}
}
}
}
zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便。
首先下载二进制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("输入内容不能为空!");
return;
}
Bitmap bitmap = writer.Write(textBoxText.Text);
pictureBoxQr.Image = bitmap;
}
}
}
效果:
将字符编码时可以指定字符格式;默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符集编码,
可以通过QrCodeEncodingOptions设置编码方式。
如果要生成其他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("输入内容不能为空!"); return; } Bitmap bitmap = writer.Write(textBoxText.Text); pictureBoxQr.Image = bitmap; } } }
效果:
输入字符串需要符合编码的格式,不然会报错。
解码方式:
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)//当拖放进入窗体
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy; //显示拷贝效应
else
e.Effect = DragDropEffects.None;
}
private void Form1_DragDrop(object sender, DragEventArgs e) //当拖放放在窗体上
{
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; //显示解析结果
}
}
}
}
相关文章推荐
- C# WinForm开发系列 - ZedGraph
- 几种排序算法的c#实现
- C#获取汉字的拼音首字母帮助类库
- C#.Net过滤特殊字符通用类库方法
- 0基础学C#教程3--------winform中的vs工具箱不见了,怎么重新调出来?
- 【C#】开发可以可视化操作的windows服务
- C# 使用xenocode混淆加密【转】
- 【C#设计模式-原型模式】
- C# dataGridView表格,可以鼠标拖动替换单元格行
- 【C#-深度复制和浅度复制的比较】
- C#学习——简单socket、多线程
- C#日期时间格式化
- Webdriver(selenium2.0)+NUnit+C# (一)
- C#新手学习快速成长学习资源汇总
- C#下批量判断该条记录在表中是否存在问题
- VS快捷键
- C#中params关键字的作用理解
- 在C#里面给PPT添加注释
- 【转】C#中virtual和abstract的区别
- C# Bulk Operations