C#使用Zxing.dll组件解析二维码的实现

 更新时间:2023年09月28日 08:28:43   作者:@年年  
ZXing是一个开源的,支持多种格式的条形码图像处理库,本文主要介绍了C#使用Zxing.dll组件解析二维码的实现,具有一定的参考价值,感兴趣的可以了解一下

1.首先下载Zxing.dll组件,将dll组件放置debug文件夹中,引用参考,引入空间命名。

2.解码方法

       string result = string.Empty;
        //--解码
        private string RQDecode(Bitmap img)
        {
            string errText = string.Empty;
            Result result = null;
            if (img != null)
            {
                try
                {
                    result = new BarcodeReader().Decode(new Bitmap(pictureBox1.Image));
                    string barCodeStr = result.ToString();
                    labelBarCodeResult.Text = "识别结果是:" + barCodeStr;
                    //listBox1.Items.Add(barCodeStr);
                }
                catch { return errText; }
                if (result != null)
                {
                    return result.Text;
                }
                else
                {
                    return errText;
                }
            }
            else
            {
                return errText;
            }
        }

3.全部源码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZXing;
namespace Code_test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private string pathname = string.Empty;//定义路径名变量
        private void button1_Click(object sender, EventArgs e)
        {
            DialogOperate openfile = new DialogOperate();//实例化对象
            textBox1.Text = openfile.OpenFile();//调用方法,显示图片路径
            pathname = textBox1.Text;//获取文件路径
             if (pathname != string.Empty)//这个判断用处不大
            {
                try
                {
                   this.pictureBox1.Load(pathname);//加载图片路径
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        string result = string.Empty;
        //--解码
        private string RQDecode(Bitmap img)
        {
            string errText = string.Empty;
            Result result = null;
            if (img != null)
            {
                try
                {
                    result = new BarcodeReader().Decode(new Bitmap(pictureBox1.Image));
                    string barCodeStr = result.ToString();
                    labelBarCodeResult.Text = "识别结果是:" + barCodeStr;
                    //listBox1.Items.Add(barCodeStr);
                }
                catch { return errText; }
                if (result != null)
                {
                    return result.Text;
                }
                else
                {
                    return errText;
                }
            }
            else
            {
                return errText;
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            RQDecode(new Bitmap(pictureBox1.Image));//开始解析
        }
    }
}

4.效果图

到此这篇关于C#使用Zxing.dll组件解析二维码的实现的文章就介绍到这了,更多相关C# Zxing.dll解析二维码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • C#数据结构与算法揭秘四 双向链表

    C#数据结构与算法揭秘四 双向链表

    上节说过这节会讲双向链表,环形链表和应用举例,我们开始吧!!!!
    2012-11-11
  • c#编写的高并发数据库控制访问代码

    c#编写的高并发数据库控制访问代码

    往往大数据量,高并发时, 瓶颈都在数据库上, 好多人都说用数据库的复制,发布, 读写分离等技术, 但主从数据库之间同步时间有延迟.
    2015-03-03
  • 在Unity中使用全局变量的操作

    在Unity中使用全局变量的操作

    这篇文章主要介绍了在Unity中使用全局变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#如何通过匿名类直接使用访问JSON数据详解

    C#如何通过匿名类直接使用访问JSON数据详解

    这篇文章主要给大家介绍了关于C#如何通过匿名类直接使用访问JSON数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。
    2018-02-02
  • C#实现Quartz任务调度的示例代码

    C#实现Quartz任务调度的示例代码

    使用 Quartz.NET,你可以很容易地安排任务在应用程序启动时运行,或者每天、每周、每月的特定时间运行,甚至可以基于更复杂的调度规则,本文给大家介绍了C#实现Quartz任务调度,需要的朋友可以参考下
    2024-04-04
  • unity中实现Edge浏览器鼠标手势的功能思路详解

    unity中实现Edge浏览器鼠标手势的功能思路详解

    这篇文章主要介绍了unity中实现Edge浏览器鼠标手势的功能思路详解,实现起来其实并不复杂,涉及的技术点有pc端和移动端屏幕拖动事件,二维向量的相关运算,手势匹配算法,事件系统设计模式,需要的朋友可以参考下
    2023-12-12
  • Oracle中for循环的使用方法

    Oracle中for循环的使用方法

    这篇文章介绍了Oracle中for循环的使用方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • SQL+C#实现获得当前月的第一天与最后一天

    SQL+C#实现获得当前月的第一天与最后一天

    本文分享了SQL+C#获得当前月的第一天与最后一天的代码实例,代码简洁,适合初学者参考。需要的朋友可以看下
    2016-12-12
  • C#利用VS中插件打包并发布winfrom程序

    C#利用VS中插件打包并发布winfrom程序

    这篇文章主要为大家详细介绍了C#利用VS中插件打包并发布winfrom程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • C# 使用动态库DllImport("kernel32")读写ini文件的步骤

    C# 使用动态库DllImport("kernel32")读写ini文件的步骤

    kernel32.dll是Windows中非常重要的32位动态链接库文件,属于内核级文件,这篇文章主要介绍了C# 利用动态库DllImport("kernel32")读写ini文件,需要的朋友可以参考下
    2023-05-05

最新评论