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

zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便。

首先下载二进制dll文件,引入工程;

代码:

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

效果:


 将字符编码时可以指定字符格式;默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符集编码,

可以通过QrCodeEncodingOptions设置编码方式。

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

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

效果:


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


 

C#利用zxing.net操作二维码和条形码的更多相关文章

  1. 基于Asp.Net Core,利用ZXing来生成二维码的一般流程

    本文主要介绍如何在.net环境下,基于Asp.Net Core,利用ZXing来生成二维码的一般操作.对二维码工作原理了解,详情见:https://blog.csdn.net/weixin_36191 ...

  2. 【VB.NET】利用 ZXing.Net 生成二维码(支持自定义LOGO)

    有任何疑问请去我的新博客提出 https://blog.clso.fun/posts/2019-03-03/vb-net-zxing-net-qr-maker.html ZXing .NET 的项目主 ...

  3. C# .Net 使用zxing.dll生成二维码,条形码

    public static string GetBarcode(string format, string value, int? width, int? height)        {       ...

  4. Android ZXing 二维码、条形码扫描介绍

    本帖最后由 Shims 于 2013-11-9 12:39 编辑 最近公司的Android项目需要用到摄像头做条码或二维码的扫描,Google一下,发现一个开源的 ZXing项目.它提供二维码和条形码 ...

  5. 使用zxing生成解析二维码

    1. 前言 随着移动互联网的发展,我们经常在火车票.汽车票.快餐店.电影院.团购网站以及移动支付等各个场景下见到二维码的应用,可见二维码以经渗透到人们生活的各个方面.条码.二维码以及RFID被人们应用 ...

  6. 二维码、条形码扫描——使用Google ZXing

    我在项目中用到了二维码扫描的技术,用的是Google提供的ZXing开源项目,它提供二维码和条形码的扫描.扫描条形码就是直接读取条形码的内容,扫描二维码是按照自己指定的二维码格式进行编码和解码. 可以 ...

  7. 二维码之zxing仿新浪微博二维码

    在前言中最后部分,提到了二维码开发工具资源ZXing.网上有它最新1.7版的源码,感兴趣的可以下载下来看看,要打包生成core比较麻烦,网上有相关教程.嫌麻烦的朋友,可以去我的资源里下载Java版的c ...

  8. C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(二)

    1.使用ZXint.Net生成带logo的二维码 /// <summary> /// 生成带Logo的二维码 /// </summary> /// <param name ...

  9. Android二维码开源项目zxing用例简化和生成二维码、条形码

    上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...

随机推荐

  1. poj 2777线段树应用

    敲了n遍....RE愉快的debug了一晚上...发现把#define maxn = 100000 + 10 改成 #define maxn = 100010 就过了....感受一下我呵呵哒的表情.. ...

  2. Awk 从入门到放弃 (8) 动作总结之三

    awk continue 语句  awk exit 语句  awk if  语句  awk next 语句 awk break 语句

  3. storage路径问题

    1 概念总述 android开发中,关于存储路径,我们经常听到以下几个概念:内存.内部存储和外部存储,现在我们就来详细说说这三者区别与联系. 内存:英文中记为memory,即RAM 内部存储:英文记为 ...

  4. git的搭建与简单实用

    svn是中央集中版本,所有的人都下载同一个版本去更新,git是分布式的,可以现在自己想要的分支.svn集中式版本控制系统不但速度慢,而且必须联网才能使用git系统的安全性高.git及其强大的分支管理g ...

  5. Nodejs之mssql模块的封装

    在nodejs中,mssql模块支持sqlserver数据库操作.今天将mssql模块的某些功能封装为一个类,方便以后调用.封装的功能有执行存储过程,执行查询语句操作等.如果本篇文章对大家有帮助,那就 ...

  6. 玩转X-CTR100 l STM32F4 l OLED显示-SSD1306无字库

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      OLED显示屏具有自发光特性,不需要背光, ...

  7. ReentrantLock的原理解析

    重入锁(ReentrantLock)是一种可重入无阻塞的同步机制.性能同synchronized接近(老版本jdk中性能很差). 下面重点看下常用的lock()和unlock()方法的实现原理. lo ...

  8. spring事务管理及相关知识

    最近在项目中遇到了spring事务的注解及相关知识,突然间感觉自己对于这部分知识只停留在表面的理解层次上,于是乎花些时间上网搜索了一些文章,以及对于源码的解读,整理如下: 一.既然谈到事务,那就先搞清 ...

  9. linux 简单常用命令

    kill -3 pid就是发送信号3也就是SIGQUIT给进程pid.kill -9 就是发信号9也就是SIGKILL. pwd: 打印当前工作目录ls:默认显示当前工作目录内容cd:改变当前工作目录 ...

  10. bug生命周期和bug状态处理

    首先,测试人员发现 BUG ,做好记录并上报至 BUG 数据库.接着,开发组长或经理确定该 BUG 是否有效 之后指定 BUG 的优先级并安排给相关开发人员.否则拒绝该 BUG 的修复. 然后,该 B ...