C#利用ZXing.Net生成条形码和二维码

C#利用ZXing.Net生成条形码和二维码

ZXing.Net 简介

ZXing.Net 是 Google 推出的一款开源条码读写库,支持多种条码类型,包括 1D 条形码和 2D 二维码等。在 .NET 平台下,可以通过 ZXing.Net 库来生成、识别条码。

ZXing.Net 安装

可以通过 NuGet 包管理器中搜索”ZXing.Net”进行安装。或者可以在 官方网站 下载源代码并引用安装。

生成条形码

生成条形码的过程分为以下几步:

  1. 导入 ZXing.Net 库

    using ZXing;
    using System.Drawing;
    using System.Drawing.Imaging;

  2. 创建 BarcodeWriter 类的实例

    BarcodeWriter writer = new BarcodeWriter
    {
    Format = BarcodeFormat.CODE_128
    };

  3. 设置条码的配置

    writer.Options = new EncodingOptions
    {
    Height = 80,
    Width = 250
    };

  4. 生成条码图像

    Bitmap bitmap = writer.Write("1234567890");

  5. 保存条码图像

    bitmap.Save(@"C:\条形码\code128.png", ImageFormat.Png);

完整代码如下:

using ZXing;
using System.Drawing;
using System.Drawing.Imaging;

class Program
{
    static void Main(string[] args)
    {
        // 创建 BarcodeWriter 类的实例
        BarcodeWriter writer = new BarcodeWriter
        {
            Format = BarcodeFormat.CODE_128
        };

        // 设置条码的配置
        writer.Options = new EncodingOptions
        {
            Height = 80,
            Width = 250
        };

        // 生成条码图像
        Bitmap bitmap = writer.Write("1234567890");

        // 保存条码图像
        bitmap.Save(@"C:\条形码\code128.png", ImageFormat.Png);
    }
}

生成二维码

生成二维码的过程与生成条形码类似,只需将 BarcodeFormat.CODE_128 改为 BarcodeFormat.QR_CODE 即可。

完整代码如下:

using ZXing;
using System.Drawing;
using System.Drawing.Imaging;

class Program
{
    static void Main(string[] args)
    {
        // 创建 BarcodeWriter 类的实例
        BarcodeWriter writer = new BarcodeWriter
        {
            Format = BarcodeFormat.QR_CODE
        };

        // 设置二维码的配置
        writer.Options = new QrCodeEncodingOptions
        {
            DisableECI = true,
            CharacterSet = "UTF-8",
            Width = 300,
            Height = 300
        };

        // 生成二维码图像
        Bitmap bitmap = writer.Write("https://www.example.com");

        // 保存二维码图像
        bitmap.Save(@"C:\二维码\qrcode.png", ImageFormat.Png);
    }
}

示例

以下是一个生成多个类型条码的示例,供参考:

using ZXing;
using System.Drawing;
using System.Drawing.Imaging;

class Program
{
    static void Main(string[] args)
    {
        // 创建编码器类实例
        BarcodeWriter writer = new BarcodeWriter
        {
            Format = BarcodeFormat.CODE_128
        };

        // 设置条形码配置
        writer.Options = new EncodingOptions
        {
            Height = 80,
            Width = 250
        };

        // 生成 Code 128 条形码
        Bitmap bitmap1 = writer.Write("1234567890");

        // 保存 Code 128 条形码
        bitmap1.Save(@"C:\条形码\code128.png", ImageFormat.Png);

        // 设置二维码的配置
        writer.Format = BarcodeFormat.QR_CODE;
        writer.Options = new QrCodeEncodingOptions
        {
            DisableECI = true,
            CharacterSet = "UTF-8",
            Width = 300,
            Height = 300
        };

        // 生成 QR Code 二维码
        Bitmap bitmap2 = writer.Write("https://www.example.com");

        // 保存 QR Code 二维码
        bitmap2.Save(@"C:\二维码\qrcode.png", ImageFormat.Png);
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#利用ZXing.Net生成条形码和二维码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JSP迅速入门

    以下是JSP迅速入门的完整攻略: JSP介绍 Java服务器页面(Java Server Pages,JSP)是一种动态网页技术,JSP和PHP、ASP相似,JSP由HTML、Java代码、JSP标签和表达式组成,它允许Java代码和命令直接插入HTML页面中。 JSP环境搭建 要使用JSP技术,需要一台运行Web应用程序的Web服务器,比如Tomcat、J…

    Java 2023年5月20日
    00
  • Java Apache POI报错“IllegalFormatException”的原因与解决办法

    “IllegalFormatException”是Java的Apache POI类库中的一个异常,通常由以下原因之一引起: 格式错误:如果格式不正确,则可能会出现此异常。例如,可能会尝试使用错误的格式解析Excel单元格中的数据。 以下是两个实例: 例1 如果格式不正确,则可以尝试使用正确的格式以解决此问题。例如,在Java中,可以使用以下代码: FileI…

    Java 2023年5月5日
    00
  • Java构造代码块,静态代码块原理与用法实例分析

    当我们创建Java对象时,会自动对对象进行初始化。除了对属性进行初始化外,我们还可以利用代码块来进行初始化操作。其中Java构造代码块和静态代码块都是常见的初始化方式。 构造代码块 构造代码块是一种在类中直接使用非静态代码块的方式来对实例进行初始化的机制。它只跟随构造函数一起执行,例如: public class CodeBlockExample { { S…

    Java 2023年5月23日
    00
  • jabsorb笔记_几个小例子第1/2页

    jabsorb笔记_几个小例子第1/2页 什么是jabsorb jabsorb是一个 JavaScript 对象表示法 (JSON) 库,它将 Java 对象转换为 JSON 格式并反向转换。它具有很高的效率和灵活性,并且易于使用。 jabsorb的使用方法 jabsorb的使用非常简单,只需要引入jabsorb的jar包,然后创建一个JSONRPCBrid…

    Java 2023年6月15日
    00
  • jsp实现Servlet文件下载的方法

    实现Servlet文件下载可以通过JSP页面的form表单提交或通过Servlet的输出流方式进行,下面分别进行讲解。 通过JSP页面的form表单提交下载文件 在JSP页面中添加form表单,设置action为需要下载文件的Servlet路径。 “`html 下载文件 “` 其中,fileName为要下载文件的文件名。 在Servlet中获取要下载的文…

    Java 2023年6月15日
    00
  • Java编写网络聊天程序实验

    Java编写网络聊天程序是Java网络编程的典型案例之一。下面是一份完整的攻略: 确定需求 在开始编写之前,我们需要明确我们的需求是什么。我们的聊天程序需要实现以下功能: 客户端可以连接到服务器 客户端可以发送消息、接收消息 服务器可以广播客户端发送的消息给所有客户端 设计架构 为了实现这些需求,我们需要考虑使用什么样的架构。我们可以使用一个基于线程池的架构…

    Java 2023年5月23日
    00
  • java8中Stream的使用以及分割list案例

    Java 8中添加了Stream API,提供了一种新的操作集合和数组的方式,它使得我们可以更加便捷地进行集合和数组的处理操作,同时也可以编写更为可读性高和简洁的代码。以下是Java 8中Stream的使用以及分割List的攻略。 Stream的使用 基本概念 Stream是Java 8中提供的一种数据流的方式,它是一种高效、强大和易用的API。它通过函数式…

    Java 2023年5月26日
    00
  • Java多线程提交按照时间顺序获取线程结果详解流程

    Java多线程提交按照时间顺序获取线程结果,是一种常见的并发处理方式。其流程大致可以分为任务提交、线程池处理、结果收集三个过程。 任务提交 在Java中,可以通过Executors提供的静态方法创建线程池,以便统一管理和复用线程资源,同时避免频繁创建线程的性能开销。 ExecutorService executor = Executors.newFixedT…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部