`

Java 创建/识别条形码、二维码

阅读更多

条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常用于标示物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,广泛应用于各个领域。常见的包括一维条码(条码)、二维条码(二维码)、彩色条码,在具体码制上可分为多种不同类型的条码,如UPC(统一产品代码,只能以数字表示)、Code 3(能表示字母、数字和其它一些符号共43个字符)、Code 128(表示高密度数据,字符串可变长,符号内含校验码)、Codabar(库德巴码,以起始/终止符a,b,c d四个字符、数字0 - 9,字符$、+、- 组成,可变长度,没有校验位)、QR(呈正方形,常见以黑白两色组成。) 、PDF417(多行组成的条形码,可存储大量数据)、复合条码(新出现的码制类型,由两个很靠近的条码符号组成,包含互相关联的数据)等。以下内容,将介绍通过Java程序来创建、读取条码的方法。示例要点包括:

  • 创建一维条形码(Barcode)
  • 创建二维码(QR Code)
  • 读取/识别条码

使用工具:Free Spire.Barcode for Java (免费版)

这里使用的工具,支持多种条码类型,包括条形码,二维码和邮政码,多达38种条码类型,如CODE 25、CODABAR、CODE 11、INTERLEAVED 25、CODE 39、CODE 39 EXTENDED、CODE 93、CODE 93 EXTENDED、CODE 128、EAN 8、EAN 13、EAN 128、EAN 14、SCC 14、SSCC 18、ITF 14、ITF 6、UPCA、UPCE、POST NET、SINGAPORE POST 4 STATE、PLANET、MSI、RSS 14、RSS 14 TRUNCATED、RSS LIMITED、RSS EXPANDED、USPS、SWISS POST PARCEL、PZN、OPC、DEUTSCHE POST IDENTCODE、DEUTSCHE POST 、LEITCODE、ROYAL MAIL 4 STATE、DATA MATRIX、QR CODE、PDF 417、PDF 417 MACRO等,可设置条码颜色,边框,边距,宽度以及各种属性,数据样式等等。

Jar文件获取及导入:

 

方法1通过官网下载jar文件包。下载后,解压文件,并将lib文件夹下的Spire.Barcode.jar文件导入到java程序。参考如下导入效果:


 

方法2可通过maven仓库安装导入。可参考导入方法

 

Java 代码示例

 

【示例1】创建一维条形码

import com.spire.barcode.BarCodeGenerator;
import com.spire.barcode.BarCodeType;
import com.spire.barcode.BarcodeSettings;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class CreateBarcode {
    public static void main(String[] args) throws IOException {
        BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
        settings.setType(BarCodeType.Code_128);//指定条码类型
        settings.setData("123456789");//设置条码数据
        settings.setData2D("123456789");//设置条码显示数据
        settings.setShowTextOnBottom(true);//设置数据文本显示在条码底部
        settings.setX(0.8f);//设置黑白条宽度
        settings.setImageHeight(50);//设置生成的条码图片高度
        settings.setImageWidth(70);//设置生成的条码图片宽度
        settings.hasBorder(true);//设置边框可见
        settings.setBorderColor(new Color(135,206,250));//设置条码边框颜色
        settings.setBorderWidth(1);//设置条码边框宽度
        settings.setBackColor(new Color(240,255,255));//设置条码背景色

        BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
        BufferedImage bufferedImage = barCodeGenerator.generateImage();//根据settings生成图像数据,保存至BufferedImage实例
        ImageIO.write(bufferedImage, "png", new File("CODE128.png"));//保存条码为PNG图片
        System.out.println("Complete!");
    }
}

 条码创建效果:

 

【示例2】创建二维码 

import com.spire.barcode.*;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class CreateQR {
    public static void main(String[] args) throws IOException {

        BarcodeSettings settings = new BarcodeSettings();//创建BarcodeSettings实例
        settings.setType(BarCodeType.QR_Code);//设置条码类型为QR二维码
        settings.setData("Hello 123456789");//设置二维码数据
        settings.setData2D("Hello 123456789");//设置二维码显示数据
        settings.setQRCodeDataMode(QRCodeDataMode.Alpha_Number);//设置数据类型
        settings.setX(1.0f);//设置二维码模型宽度
        settings.setQRCodeECL(QRCodeECL.H);//设置二维码纠错级别
        settings.setImageWidth(50);//设置生成的二维码图片宽度
        settings.setImageHeight(50);//设置生成的二维码图片高度
        settings.hasBorder(false);//设置二维码边框不可见

        BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);//创建BarCodeGenerator实例
        BufferedImage bufferedImage = barCodeGenerator.generateImage();//根据settings生成图像数据,保存至BufferedImage实例
        ImageIO.write(bufferedImage, "png", new File("QRCode.png"));//保存二维码图片为PNG格式
        System.out.println("Complete!");
    }
}

二维码创建效果:

 

【示例3】读取/识别条码

import com.spire.barcode.*;

public class ScanBarcode {
    public static void main(String[] args) throws Exception{
        //使用scan方法从图片中识别Code 128条形码
        String[] datas = BarcodeScanner.scan("CODE128.png", BarCodeType.Code_128);
        System.out.print(datas[0]);
    }
}

 识别结果:


 

(本文完)

 

转载请注明出处!!

 

 

  • 大小: 34.6 KB
  • 大小: 97.6 KB
  • 大小: 93.3 KB
  • 大小: 14.2 KB
3
0
分享到:
评论

相关推荐

    Java创建、识别条形码和二维码方法示例

    Java创建、识别条形码和二维码方法示例 本文主要介绍了Java创建、识别条形码和二维码的相关资料,通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值。 条形码的概念和类型 条形码...

    java生成/解析二维码两种方式

    ZXing,又称“条形码扫描器”,是一个多平台的开源项目,用于读取、写入多种条形码和二维码格式。它提供了多种语言的API,包括Java,使得开发者可以方便地在Java应用中集成二维码的生成和解析功能。 **二、生成...

    基于Java的二维码识别系统.pdf

    ### 基于Java的二维码识别系统知识点概述 #### 二维码技术的演进与应用 一维条码自诞生以来,极大地推动了生产和生活方式的变革,然而其信息存储量有限、过度依赖数据库等缺陷,逐渐无法满足现代社会对信息记录与...

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    总之,使用ZXing开发的二维码/条形码/带logo彩色二维码例子是一个实用的项目,它扩展了ZXing的基本功能,增加了视觉吸引力和品牌识别度。对于开发者来说,掌握这样的技术可以提升应用程序的用户体验,特别是在市场...

    android上使用ZXing识别条形码和二维码

    在Android平台上进行条形码和二维码的识别与生成,ZXing库是一个不可或缺的工具。ZXing,全称为“Zebra Crossing”,是一个开源项目,提供了多种平台的条码处理能力,包括读取、生成以及解析。在Android应用开发中,...

    java生成与识别二维码

    在IT行业中,二维码(Quick Response Code)是一种二维条形码,可以存储大量信息,如文本、网址、联系信息等,并且能被智能手机等设备快速读取。Java作为一门广泛使用的编程语言,同样提供了生成和识别二维码的能力...

    java条形码识别

    3. **解码**:使用ZXing库的`com.google.zxing.Reader`接口和对应的`decode`方法,传入预处理后的图像,尝试识别条形码。 4. **处理结果**:如果识别成功,`decode`方法会返回一个`Result`对象,其中包含了条形码的...

    条形码、二维码扫描、生成Demo 完整源码

    在IT行业中,条形码和二维码是数据交换与识别的重要工具,广泛应用于商品管理、物流追踪、信息存储等领域。Google的ZXing(Zebra Crossing)是一个开源项目,它提供了跨平台的条形码和二维码生成及扫描功能。下面将...

    zxing.dll/条形码/二维码、版本0.16.2

    1. **条形码和二维码生成**:ZXing提供了一套完整的API,使得开发者能够创建各种类型的条形码,如Code 128、EAN、UPC等,以及二维码,如QR Code、Aztec、Data Matrix等。生成的条形码和二维码可以嵌入到网页、文档...

    Python zxing 库(条形码二维码识别)

    Python ZXing 库是将Java版ZXing(Zone Xing)库与Python结合的一个项目,主要功能在于处理图像中的条形码和二维码识别。ZXing,又称为“条形码扫描器”,是一个开源的、多平台的二维码和一维条形码读取库。在Python中...

    Java QRCode二维码生成与识别 开源

    Java QRCode二维码生成与识别是Java编程领域中的一个重要技术,主要应用于数据编码和快速信息交换。QRCode(Quick Response Code)是一种二维条码,能够存储大量的文本信息,包括字母、数字、汉字等,并且可以被各种...

    C#使用ZXing识别二维码,条形码

    在IT领域,二维码和条形码的识别是数据读取和交换的重要环节,尤其是在物联网、移动支付、物流跟踪等场景中。ZXing(Zebra Crossing)是一个流行的开源库,用于处理各种类型的条形码和二维码。这个项目是针对C#编程...

    spring boot整合二维码和条形码

    在IT行业中,Spring ...总之,通过Spring Boot与ZXing库的结合,我们可以轻松地在应用程序中集成二维码和条形码生成功能,为用户提供便捷的数据交换和识别途径。这在物流、票务、产品追踪等多个领域都有广泛的应用。

    基于java+opencv+c++二维码/条码识别+身份证识别+银行卡识别+车牌识别+图片文字识别+黄图识别+驾驶证(驾照)识别

    基于java+opencv+c++二维码/条码识别+身份证识别+银行卡识别+车牌识别+图片文字识别+黄图识别+驾驶证(驾照)识别,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ ...

    java条形码,二维码生成

    "java条形码,二维码生成"这个主题,就是关于如何在Java环境下利用特定的开源代码来创建条形码和二维码。 1. **条形码**:条形码是一种通过不同宽度和间隔的黑白条纹来表示数据的图形符号。在Java中,常用的条形码...

    ZXing识别条形码二维码

    在本项目中,我们专注于使用ZXing进行条形码(Code 128)和二维码(QR Code)的识别。 Code 128是一种高密度的条形码标准,能够编码所有的128个ASCII字符,包括数字、字母和一些特殊字符。它的结构严谨,纠错能力较...

    java识别及生成二维码

    二、Java识别二维码 1. 使用Zxing库读取二维码: Zxing库同样提供了读取二维码的功能。通过`com.google.zxing.MultiFormatReader`类,我们可以从图像文件中解码出二维码数据: ```java import com.google.zxing.*;...

    java摄像头读取二维码(整个java项目)

    2. **ZXing(Zebra Crossing)库**:该项目使用了ZXing库(Google开源的二维码解码库),它支持多种编码格式,包括QR码、条形码等。ZXing库提供了`com.google.zxing`包下的多个类,如`Reader`、`MultiFormatReader`...

    使用zxing识别一幅包含多个二维码的图片

    ZXing(Zebra Crossing),又称“条形码解码库”,是一个开源项目,提供了多种格式的一维和二维条码读取功能,包括二维码。本篇文章将深入探讨如何使用ZXing来识别一幅包含多个二维码的图片。 首先,我们需要理解...

Global site tag (gtag.js) - Google Analytics