Java使用ZXing生成二维码条形码
一、增加zxing 的maven依赖,或者下载Zxingjar包
本实例使用的是 zxing3.2.0的版本
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.2.0</version>
</dependency>
maven依赖:
下载地址 http://pan.baidu.com/s/1gdH7PzP
说明:本实例使用的3.2.0版本已经使用的java7的nio. 旧版本的java io也支持,只是方法被标注为已过期了。
二、实例代码
/**
* 二维码&条形码操作工具
* <br/>
* 使用示例:<code>QRcodes.me().doMethod(O o1,O o2);</code>
* <br/>
*
* @author
* @date 2015年6月1日 下午5:00:55
*/
public class QRcodes { private static QRcodes me=null; public static final String default_stuffix="png"; public static final String default_charset="UTF-8"; private QRcodes(){} /**
* 单例
* @return
*/
public static QRcodes me(){
if(me==null){
me=new QRcodes();
}
return me;
} /**
* 生成二维码到指定文件路径
* @param codeData
* 二维码内容
* @param filePath
* 文件,格式为/fatherpath/childpath/filename.stuffix
* @param charset
* 编码默认为uft-8
* @param correctionLevel
* 错误修正级别1,2,3,4
* @param height
* 高度
* @param width
* 宽度
* @return
*/
public boolean createQRCode2File(QRcodeType codeType,String codeData, String filePath,String charset, int correctionLevel, int height, int width) {
try {
Path path=Paths.get(filePath);
String suffix=filePath.substring(filePath.lastIndexOf('.') + 1);
if(suffix==null||"".equals(suffix)){
suffix=default_stuffix;
}
if(charset==null||"".equals(charset)){
charset=default_charset;
}
Map<EncodeHintType, Object> hintMap = createHintMap(correctionLevel);
BarcodeFormat type=getBarcodeFormat(codeType);
BitMatrix matrix =new MultiFormatWriter().encode(new String(codeData.getBytes(charset), charset),type, width, height, hintMap);;
MatrixToImageWriter.writeToPath(matrix, suffix, path);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* 输出二维码到输出流
*
* @param codeData
* 二维码内容
* @param height
* 高度
* @param width
* 宽度
* @param charset
* 编码格式,默认utf-8
* @param suffix
* 生成的文件后缀名
* @param correctionLevel
* 错误修正级别1,2,3,4,级别越高越好识别,特别是在二维码中加入了logo的时候
* @param stream
* 输出流
* @return
* @throws WriterException
* @throws IOException
*/
public OutputStream createQRCode2Stream(QRcodeType codeType,String codeData,int height, int width,String charset,String suffix,int correctionLevel,OutputStream stream)throws WriterException, IOException {
if(suffix==null||"".equals("")){
suffix=default_stuffix;
}
Map<EncodeHintType, Object> hintMap = createHintMap(correctionLevel);
BarcodeFormat type=getBarcodeFormat(codeType);
BitMatrix matrix=new MultiFormatWriter().encode(new String(codeData.getBytes(charset), charset),type, width, height, hintMap);;
MatrixToImageWriter.writeToStream(matrix, suffix, stream);
return stream;
}
/**
* 参数处理,错误修正级别
* @param correctionLevel
* @return
*/
private Map<EncodeHintType, Object> createHintMap(int correctionLevel){
Map<EncodeHintType, Object> hintMap = new HashMap<EncodeHintType, Object>();
hintMap.put(EncodeHintType.MARGIN, 1);//空白填充
if(correctionLevel==2){
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
}else if(correctionLevel==3){
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.Q);
}else if(correctionLevel==4){
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
}else{
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
}
return hintMap;
} public BarcodeFormat getBarcodeFormat(QRcodeType codeType){
if(QRcodeType.QR_CODE==codeType){
return BarcodeFormat.QR_CODE;
}else if(QRcodeType.CODE_128==codeType){
return BarcodeFormat.CODE_128;
}else{
return BarcodeFormat.QR_CODE;
}
} }
public enum QRcodeType {
QR_CODE,//二维码
CODE_128,//条形码
other;
}
Java使用ZXing生成二维码条形码的更多相关文章
- java学习-zxing生成二维码矩阵的简单例子
这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件,也可使用maven添加依赖 <dependency> <gr ...
- Java利用Zxing生成二维码
Zxing是Google提供的关于条码(一维码.二维码)的解析工具,提供了二维码的生成与解析的方法,现在我简单介绍一下使用Java利用Zxing生成与解析二维码 1.二维码的生成 1.1 将Zxing ...
- java 通过zxing生成二维码
1.基本类提供二维码生成工具类 package com.green.util; import java.awt.image.BufferedImage; import java.io.ByteArra ...
- (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果
场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...
- Java根据链接生成二维码
Java根据链接生成二维码 相关 jar 包: core-3.1.0.jar 源码及 jar 包下载:http://files.cnblogs.com/files/liaolongjun/qrcode ...
- Java后台直接生成二维码介绍
Java后台直接生成二维码 1.其实jquery也可以直接生成二维码的,但我测试的时候,二维码生成后太模糊,难以识别.所以在这里介绍在后来生成二维码的方式. 2.不善于文字描述,直接上代码了. imp ...
- 通过zxing生成二维码
二维码现在随处可见,在日常的开发中,也会经常涉及到二维码的生成,特别是开发一些活动或者推广方面的功能时,二维码甚至成为必备功能点.本文介绍通过 google 的 zxing 包生成带 logo 的二维 ...
- 使用google zxing生成二维码图片
生成二维码工具类: 1 import java.awt.geom.AffineTransform; 2 import java.awt.image.AffineTransformOp; 3 impor ...
- zxing生成二维码设置边框颜色
真是研究了很久很久,满满的泪啊 zxing生成二维码,默认是可以增加空白边框的,但是并没有可以设置边框颜色的属性. 其中增加空白边框的属性的一句话是: Map hints = new HashMap( ...
随机推荐
- 20145320 《Java程序设计》第6周学习总结
20145320 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 输入/输出 流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的 10.1 Input ...
- vsftpd.conf Details
引用:http://blog.chinaunix.net/uid-23257894-id-2466823.html /etc/vsftpd/vsftpd.conf文件详解,分好类,方便大家查找与学习 ...
- 夺命雷公狗-----React---12--添加类和样式
<!DOCTYPE> <html> <head> <meta charset="utf-8"> <title></ ...
- 机器学习:异常检测算法Seasonal Hybrid ESD及R语言实现
Twritters的异常检测算法(Anomaly Detection)做的比较好,Seasonal Hybrid ESD算法是先用STL把序列分解,考察残差项.假定这一项符合正态分布,然后就可以用Ge ...
- DDL、DML、DCL的理解
1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以 ...
- UCenter整合登陆时出现’Authorization has expired’错误(2014-03-13记)
原因之可能是两台机子的时间不一致导致.
- Hadoop日志文件分析系统
Hadoop日志分析系统 项目需求: 需要统计一下线上日志中某些信息每天出现的频率,举个简单的例子,统计线上每天的请求总数和异常请求数.线上大概几十台 服务器,每台服务器大概每天产生4到5G左右的日志 ...
- java中对插入排序的理解以及实例
一.基本思想 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入. 插入排序非常类似于整扑克牌. 在开始摸牌时,左手是空的,牌面朝下放在桌上.接着,一次从桌上摸起一张牌 ...
- 【转】本地存储-localStroage/sessionStorage存储
原文地址:[js学习笔记-103]----本地存储-localStroage/sessionStorage存储 客户端存储 l WEB存储 web存储最初作为html5的一部分被定义成API形式,但 ...
- EasyUI datebox 只读和取值
<input id="dd" type="text" class="easyui-datebox" required="re ...