zxing详细使用说明 java生成二维码、条形码
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生成二维码、条形码相关推荐
- java 生成二维码 QRCode、zxing 两种方式
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...
- Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码
Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...
- 关于Java生成二维码(zxing)
使用zxing生成二维码 提示:需要自己添加执行zxing.jar包 操作:点击链接去下载zxing包.GitHub - zxing/zxing: ZXing ("Zebra Crossin ...
- java生成二维码(链接生成二维码)
Java二维码如何生成? awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import com. ...
- 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...
二维码相关---java生成二维码名片,并且自动保存到手机通讯录中... 技术qq交流群:JavaDream:251572072 1.首先介绍一个api. Zxing是Google提供的关于条码 ...
- java生成二维码打印到浏览器
java生成二维码打印到浏览器 解决方法: pom.xml的依赖两个jar包: <!-- https://mvnrepository.com/artifact/com.google.zxing/ ...
- Java生成二维码带LOGO底部标题竖版字体
前言 Java后端生成二维码 底部 侧面带有标题,可调节字号 参考文章 使用Java生成二维码图片(亲测) Reborn_YY使用Java生成二维码图片 图标素材库 Java后台生成图片,前台实现图片 ...
- java生成二维码合成背景图
一.背景 接到个需求,要打印纸质红包,上面附二维码,然后每个红包的二维码不一样,扫描二维码去参加活动领真实的红包,需要给出对应的图片 二.代码示例 import java.awt.Graphics2D ...
- java生成二维码到文件,java生成二维码转成BASE64
java生成二维码到文件,java生成二维码转成BASE64 如题,利用java和第三方库,把指定的字符串生成二维码,并且把二维码保存成图片,转换成BASE64格式. 需要的jar文件: packag ...
最新文章
- java--迭代(一)Iterator和Iterable接口
- C ++中线程的简单示例
- VTK:绘制BorderPixelSize边框像素大小用法实战
- PAT (Advanced Level) 1007 Maximum Subsequence Sum(最大连续子段和)
- 数据库显示日期时仅仅显示“年-月-日”的问题
- 2018/7/12-纪中某C组题【jzoj4272,jzoj4273,jzoj4274】
- python里写在文件的指定行_python文件操作如何写在指定的行
- MFC 创建快捷方式(学习笔记)
- MATLAB GUI中显示数学公式
- Php工具箱配置环境+DW
- 智能电视或将掀起IT产业新一轮狂潮
- 图片加文字怎么弄?介绍几款不错的电脑图片编辑软件
- 银行排队管理系统(C++实现)
- 邓俊辉算法训练营第三期(带完整课件)
- python进阶之进程池multiprocessing.Pool
- 2017CS231n笔记_S11分割,定位,检测
- 【FFmpeg视频播放器开发】解封装解码流程、常用API和结构体简介(一)
- C++ 提取代码中的函数
- ffmpeg实现画中画
- CANOE 14/15 DIVA DELA APE19 CRACK DONGLE KEYMAN
热门文章
- Mac 强制退出程序方法
- 【考研计算机组成原理】课堂笔记目录汇总——知识点清晰
- 华中农业大学教务系统自动评教脚本
- 物联网设备网关系统架构设计
- python 地图偏移_python 地图经纬度转换、纠偏的实例代码 百度地图经纬度web纠偏怎么用...
- 提高数据库效率的一些方法--eg:大批量循环插入数据的简化
- 人眼感知到的颜色与真实物理世界的颜色有什么区别?
- Linux服务器常用命令 - 记录(Anaconda/Matlab/VNC/Python)
- CPU/GPU/GPGPU简介
- 茶文化网站html模板,茶文化网页模板图片