zxing详细使用

  • 一、引用maven依赖
  • 二、生成条形码
    • 1.生成二维码基本使用
    • 2.`BarcodeFormat` (条形码类型)
    • 3.`EncodeHintType`(条形码自定义属性)
    • 4.`MultiFormatWriter`(对条形码内容编码)
    • 5.`MatrixToImageWriter`(将BitMatrix写入BufferedImage、文件或流。)

一、引用maven依赖

<!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
<dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>3.5.0</version>
</dependency>

二、生成条形码

1.生成二维码基本使用

//条形码内容
String content = "这里是条形码生成的内容!!!";
//条形码格式(选择二维码格式)
BarcodeFormat format = BarcodeFormat.QR_CODE;
//条形码图片宽度和高度
int width = 200, height = 200;
//条形码图片自定义配置(非必填),可以设置二维码的内容编码格式、纠错等级等待
Map<EncodeHintType, Object> hints = new HashMap<>();
// 设置内容编码格式
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
// 设置纠错等级
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
//生成条形码
MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix bitMatrix = writer.encode(content, format, width, height, hints);
//设置二维码颜色
MatrixToImageConfig matrixToImageConfig = new MatrixToImageConfig(0xFF000000, 0xFFFFFFFF);
//转成图片信息
BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix, matrixToImageConfig);

2.BarcodeFormat (条形码类型)

设置生成条形码的类型。
如:二维码、EAN-13码、UPC-A码、Code-128码、Code-39码等等。

条形码类型 描述
BarcodeFormat.AZTEC 阿兹特克码
BarcodeFormat.CODABAR Codabar码
BarcodeFormat.CODE_39 CODE-30码
BarcodeFormat.CODE_93 CODE-93码
BarcodeFormat.CODE_128 CODE-128码
BarcodeFormat.DATA_MATRIX 矩阵式二维条码
BarcodeFormat.EAN_8 EAN-8码
BarcodeFormat.EAN_13 EAN-13码
BarcodeFormat.ITF 交插二五条码
BarcodeFormat.MAXICODE MaxiCode二维条码
BarcodeFormat.PDF_417 PDF417
BarcodeFormat.QR_CODE 二维码
BarcodeFormat.RSS_14 RSS 14
BarcodeFormat.RSS_EXPANDED RSS EXPANDED
BarcodeFormat.UPC_A UPC A
BarcodeFormat.UPC_E UPC E
BarcodeFormat.UPC_EAN_EXTENSION UPC EAN EXTENSION

3.EncodeHintType(条形码自定义属性)

key valueClass value 描述
EncodeHintType.ERROR_CORRECTION ErrorCorrectionLevel ErrorCorrectionLevel.L 容错率~7% 设置条形码识别容错率
ErrorCorrectionLevel.M 容错率~15%
ErrorCorrectionLevel.Q 容错率~25%
ErrorCorrectionLevel.H 容错率~30%
EncodeHintType.CHARACTER_SET String UTF-8、GBK、ASCI等 字符编码,注:存在中文建议使用UTF-8
EncodeHintType.DATA_MATRIX_SHAPE SymbolShapeHint SymbolShapeHint.FORCE_NONE 默认形状 设置条形码外形
SymbolShapeHint.FORCE_SQUARE 正方形
SymbolShapeHint.FORCE_RECTANGLE 矩形
EncodeHintType.DATA_MATRIX_COMPACT Boolean 类型为Boolean,或“true”或“false”字符串值 指定是否为数据矩阵使用紧凑模式
EncodeHintType.MARGIN Integer
String
可以使用Integer或String,但是String必须是整数 设置二维码的外边距
EncodeHintType.PDF417_COMPACT Boolean
String
可以使用Boolean或String,但是String必须是"true" or "false" 指定PDF417是否使用紧凑模式
EncodeHintType.PDF417_COMPACTION Compaction
String
Compaction.AUTO 自动 指定对PDF417使用的压缩模式
Compaction.TEXT 文本
Compaction.BYTE 字节
Compaction.NUMERIC 数字
String 必须和枚举值相同
EncodeHintType.PDF417_DIMENSIONS Dimensions new Dimensions() 指定PDF417的最小和最大行数和列数
EncodeHintType.PDF417_AUTO_ECI Boolean
String
可以使用Boolean或String,但是String必须是"true" or "false" 指定编码PDF417时是否自动插入eci。请注意,在这种情况下,将为输入中的不属于ISO-8859-1字符集的字符选择最紧凑的字符编码。根据经验,有些扫描仪不支持cp-1256(阿拉伯语)这样的编码。在这种情况下,可以通过CHARACTER_SET编码提示将编码强制为UTF-8
EncodeHintType.AZTEC_LAYERS Integer
String
可以使用Integer或String,但是String必须是整数 指定Aztec code所需的层数。负数(-1、-2、-3、-4)指定一个紧凑的Aztec code。0表示使用最小层数(默认值)。正数(1,2,..32)指定一个普通的(非紧凑的)Aztec code。
EncodeHintType.QR_VERSION Integer
String
可以使用Integer或String,但是String必须是整数 指定要编码的QR码的确切版本。
EncodeHintType.QR_MASK_PATTERN Integer
String
可以使用Integer或String,但是String必须是整数 指定要使用的二维码掩码图案。允许的值为0到QRCode.NUM_MASK_PATTERNS-1。默认情况下,代码将自动选择最佳掩码模式。
EncodeHintType.QR_COMPACT Boolean
String
可以使用Boolean或String,但是String必须是"true" or "false" 指定二维码是否使用压缩模式。请注意,在执行压缩时,将为输入中不属于ISO-8859-1字符集的字符选择最紧凑的字符编码。根据经验,有些扫描仪不支持cp-1256(阿拉伯语)这样的编码。在这种情况下,可以通过CHARACTER_SET编码提示将编码强制为UTF-8。
EncodeHintType.GS1_FORMAT Boolean
String
可以使用Boolean或String,但是String必须是"true" or "false" 指定是否应该将数据编码为GS1标准。
EncodeHintType.FORCE_CODE_SET String 有效值为"A", "B", "C" 将使用哪种编码的力。目前仅用于code -128代码集(类型字符串)。此选项与CODE128_COMPACT互斥。
EncodeHintType.FORCE_C40 Boolean
String
可以使用Boolean或String,但是String必须是"true" or "false" 强制C40编码数据矩阵。这个选项和DATA_MATRIX_COMPACT是互斥的。
EncodeHintType.CODE128_COMPACT Boolean
String
可以使用Boolean或String,但是String必须是"true" or "false" 指定code -128代码是否使用紧凑模式。这可以产生略小的条形码。此选项和FORCE_CODE_SET是互斥的。

4.MultiFormatWriter(对条形码内容编码)

/** 它为请求的BarcodeFormat查找适当的Writer子类,并用提供的内容对条形码进行编码。** @param contents   条形码内容* @param format   条形码格式* @param width        条形码宽度* @param height   条形码高度* @param hints        条形码图片自定义配置(非必填)* @return 条形码*/
MultiFormatWriter writer = new MultiFormatWriter();
BitMatrix bitMatrix = writer.encode(content, format, width, height, hints);

5.MatrixToImageWriter(将BitMatrix写入BufferedImage、文件或流。)

//设置二维码颜色(非必填,默认黑白)
MatrixToImageConfig matrixToImageConfig = new MatrixToImageConfig(0xFF000000, 0xFFFFFFFF);
//将二维码转成图像缓冲区类
BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);
BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix, matrixToImageConfig);
//将二维码写入文件中(writeToFile已不建议使用)
File file = new File("a.png");
MatrixToImageWriter.writeToFile(bitMatrix, "png", file);
MatrixToImageWriter.writeToFile(bitMatrix, "png", file, matrixToImageConfig);
MatrixToImageWriter.writeToPath(bitMatrix, "png", file.toPath());
MatrixToImageWriter.writeToPath(bitMatrix, "png", file.toPath(), matrixToImageConfig);
//将二维码写入流中
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream);
MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream, matrixToImageConfig);

zxing详细使用说明 java生成二维码、条形码相关推荐

  1. java 生成二维码 QRCode、zxing 两种方式

    版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...

  2. Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码

    Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...

  3. 关于Java生成二维码(zxing)

    使用zxing生成二维码 提示:需要自己添加执行zxing.jar包 操作:点击链接去下载zxing包.GitHub - zxing/zxing: ZXing ("Zebra Crossin ...

  4. java生成二维码(链接生成二维码)

    Java二维码如何生成? awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import com. ...

  5. 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...

    二维码相关---java生成二维码名片,并且自动保存到手机通讯录中... 技术qq交流群:JavaDream:251572072 1.首先介绍一个api.   Zxing是Google提供的关于条码 ...

  6. java生成二维码打印到浏览器

    java生成二维码打印到浏览器 解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxing/ ...

  7. Java生成二维码带LOGO底部标题竖版字体

    前言 Java后端生成二维码 底部 侧面带有标题,可调节字号 参考文章 使用Java生成二维码图片(亲测) Reborn_YY使用Java生成二维码图片 图标素材库 Java后台生成图片,前台实现图片 ...

  8. java生成二维码合成背景图

    一.背景 接到个需求,要打印纸质红包,上面附二维码,然后每个红包的二维码不一样,扫描二维码去参加活动领真实的红包,需要给出对应的图片 二.代码示例 import java.awt.Graphics2D ...

  9. java生成二维码到文件,java生成二维码转成BASE64

    java生成二维码到文件,java生成二维码转成BASE64 如题,利用java和第三方库,把指定的字符串生成二维码,并且把二维码保存成图片,转换成BASE64格式. 需要的jar文件: packag ...

最新文章

  1. java--迭代(一)Iterator和Iterable接口
  2. C ++中线程的简单示例
  3. VTK:绘制BorderPixelSize边框像素大小用法实战
  4. PAT (Advanced Level) 1007 Maximum Subsequence Sum(最大连续子段和)
  5. 数据库显示日期时仅仅显示“年-月-日”的问题
  6. 2018/7/12-纪中某C组题【jzoj4272,jzoj4273,jzoj4274】
  7. python里写在文件的指定行_python文件操作如何写在指定的行
  8. MFC 创建快捷方式(学习笔记)
  9. MATLAB GUI中显示数学公式
  10. Php工具箱配置环境+DW
  11. 智能电视或将掀起IT产业新一轮狂潮
  12. 图片加文字怎么弄?介绍几款不错的电脑图片编辑软件
  13. 银行排队管理系统(C++实现)
  14. 邓俊辉算法训练营第三期(带完整课件)
  15. python进阶之进程池multiprocessing.Pool
  16. 2017CS231n笔记_S11分割,定位,检测
  17. 【FFmpeg视频播放器开发】解封装解码流程、常用API和结构体简介(一)
  18. C++ 提取代码中的函数
  19. ffmpeg实现画中画
  20. CANOE 14/15 DIVA DELA APE19 CRACK DONGLE KEYMAN

热门文章

  1. Mac 强制退出程序方法
  2. 【考研计算机组成原理】课堂笔记目录汇总——知识点清晰
  3. 华中农业大学教务系统自动评教脚本
  4. 物联网设备网关系统架构设计
  5. python 地图偏移_python 地图经纬度转换、纠偏的实例代码 百度地图经纬度web纠偏怎么用...
  6. 提高数据库效率的一些方法--eg:大批量循环插入数据的简化
  7. 人眼感知到的颜色与真实物理世界的颜色有什么区别?
  8. Linux服务器常用命令 - 记录(Anaconda/Matlab/VNC/Python)
  9. CPU/GPU/GPGPU简介
  10. 茶文化网站html模板,茶文化网页模板图片