条形码(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]);}
}

识别结果:

在此我向大家推荐一个架构学习交流圈。交流学习微信:539413949(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

Java 创建/识别条形码、二维码相关推荐

  1. 用python识别条形码,二维码并且定位标注

    原理很简单用OpenCV处理图片pyzbar识别条形码 python里面有一个包pyzbar可以用识别二维码和条形码,我们再结合OpenCV处理图片的功能就可以标注出二维码位置内容 我们生活中的常见的 ...

  2. java生成矢量条形码二维码

    产品说条形码模糊,然后就生成了矢量的条形码给前端用.后面才知道前端是可以自己直接生成的. 还是记录一下 遇到一个奇怪的问题,在demo工程里面请求返回的流页面能直接显示出图形.但是在项目工程里面却返回 ...

  3. OpenCV(项目)二维码识别(二维码、条形码)

    目录 过程 1.获取图片中的二维码信息 2.获取视频中的二维码信息 3.检测出二维码框 4.显示数据 5.添加数据,判断二维码是否授权 5-1:.添加数据 5-2.读取文件信息,放入数组 5-3.判断 ...

  4. GM65条形码二维码扫描识别模块与STM32学习

    目录 模块介绍: 简介: 原理介绍: 工作流程: 技术参数: 修改配置: 代码介绍: 串口函数: 主函数: 模块介绍: 简介: GM65 条形码二维码扫描识别模块是一种基于激光扫描头的识别设备 原理介 ...

  5. Opencv+Zbar二维码识别(标准条形码/二维码识别)

    使用Opencv+Zbar组合可以很容易的识别图片中的二维码,特别是标准的二维码,这里标准指的是二维码成像清晰,图片中二维码的空间占比在40%~100%之间,这样标准的图片,Zbar识别起来很容易,不 ...

  6. Java微信公众号开发之创建带参数二维码

    生成带参数二维码接口文档:生成带参数二维码 一.介绍 1.1.目前有2种类型的二维码: 1. 临时二维码:临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期, ...

  7. OPT小讲堂 ∣ SciSmart图像识别之条形码识别、二维码识别

    在第十三课中,我们讲了图像识别中的OCR:字符识别. 本课将继续介绍图像识别中的条形码识别.二维码识别.我们将分别介绍二者的基本概念.操作流程.参数解析及应用案例. 条形码识别 条形码识别的概念 条形 ...

  8. 【C#】最全单据打印(打印模板、条形码二维码、字体样式、项目源码)

    系列文章 [C#]编号生成器(定义单号规则.固定字符.流水号.业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/12912978 ...

  9. 条形码/二维码生成探索

    条形码/二维码生成探索 所用依赖 <!--条形码生成依赖(轻量型,推荐使用这个)(生成条码的同时会把信息生成到条形码下)--><dependency><groupId&g ...

  10. 通过OpenCV识别QR二维码

    <OpenCV系列教程> 二维码有很多种,我们今天介绍的就是QR这种二维码,全名是 Quick Response Code,下面我们就称作QR码. 博客分为两部分,第一部分是QR码的基础知 ...

最新文章

  1. 5G时代,智能工厂迎来4大改变!
  2. 使用Prometheus+Grafana监控JVM
  3. [Android学习笔记]理解焦点处理原理的相关记录
  4. java HelloWorld 编程风格实践
  5. 出现ORA - 1017用户名/口令无效; 登录被拒绝 的问题
  6. [react] 有在项目中使用过Antd吗?说说它的好处
  7. ubuntu16.04下载caffe(CPU版本)及部分文件说明
  8. LwIP之套接字接口
  9. [置顶]       spring + jstl 实现java国际化的配置步骤
  10. Unity调试外部DLL
  11. 离开HK后的第二篇所感--信心
  12. json字符串使用注意问题
  13. css float属性 与 clear属性 的深入了解
  14. python获取列表控件_PyQt学习随笔:ListView控件获取当前选择项的方法
  15. 一位 70 后程序员的 26 个职场感悟
  16. 点击自定义按钮弹出百度商桥对话框
  17. css3变形 transform中复合写法的注意问题总结
  18. 倍福Twincat 3.0软件的EAP通讯(补充)
  19. 【CV系列】扫描线算法区域填充
  20. 万物革新人们刷脸支付需求越来越多元化

热门文章

  1. 请问任务管理器GPU里的copy是啥?
  2. 耳朵财经要闻|民政部:利用区块链技术增强公益组织的透明度;香港区块链协会联合会长:区块链给企业带来新的沟通和融资模式...
  3. JVM 三种常量池:Class、字符串、基本类型
  4. 在浏览器中Hadoop的Browse Directory不能下载文件的解决方案
  5. Facebook蓝光存储数据中心的节能应用
  6. 管道式广谱感应水处理器详细介绍
  7. 表面看是营销书,事实上是励志书——Leo鉴书77
  8. 2021年安全员-C证(广西省-2021版)报名考试及安全员-C证(广西省-2021版)免费试题
  9. pqmagic分区失败蓝屏解决方案
  10. thinkphp+vue.js高校教室自习室座位预订系统