一、增加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生成二维码条形码的更多相关文章

  1. java学习-zxing生成二维码矩阵的简单例子

    这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件,也可使用maven添加依赖 <dependency> <gr ...

  2. Java利用Zxing生成二维码

    Zxing是Google提供的关于条码(一维码.二维码)的解析工具,提供了二维码的生成与解析的方法,现在我简单介绍一下使用Java利用Zxing生成与解析二维码 1.二维码的生成 1.1 将Zxing ...

  3. java 通过zxing生成二维码

    1.基本类提供二维码生成工具类 package com.green.util; import java.awt.image.BufferedImage; import java.io.ByteArra ...

  4. (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...

  5. Java根据链接生成二维码

    Java根据链接生成二维码 相关 jar 包: core-3.1.0.jar 源码及 jar 包下载:http://files.cnblogs.com/files/liaolongjun/qrcode ...

  6. Java后台直接生成二维码介绍

    Java后台直接生成二维码 1.其实jquery也可以直接生成二维码的,但我测试的时候,二维码生成后太模糊,难以识别.所以在这里介绍在后来生成二维码的方式. 2.不善于文字描述,直接上代码了. imp ...

  7. 通过zxing生成二维码

    二维码现在随处可见,在日常的开发中,也会经常涉及到二维码的生成,特别是开发一些活动或者推广方面的功能时,二维码甚至成为必备功能点.本文介绍通过 google 的 zxing 包生成带 logo 的二维 ...

  8. 使用google zxing生成二维码图片

    生成二维码工具类: 1 import java.awt.geom.AffineTransform; 2 import java.awt.image.AffineTransformOp; 3 impor ...

  9. zxing生成二维码设置边框颜色

    真是研究了很久很久,满满的泪啊 zxing生成二维码,默认是可以增加空白边框的,但是并没有可以设置边框颜色的属性. 其中增加空白边框的属性的一句话是: Map hints = new HashMap( ...

随机推荐

  1. php生成随机数的三种方法

    php生成随机数的三种方法 如何用php生成1-10之间的不重复随机数? 例1,使用shuffle函数生成随机数. <?php$arr=range(1,10);shuffle($arr);for ...

  2. cmd运行sql server安装

    cmd运行sql server安装 SQL2012非群集安装_更新到最新版本.bat setup.exe /UpdateSource=.\hotfix\Latest /ACTION="Ins ...

  3. [firefox]在Debian7及其衍生版下安装firefox

    Easy way to install Firefox browser on Debian 7 wheezy Debian by default comes with Iceweasel web br ...

  4. 误删ibdata1文件恢复方法

    注意:以下演示过程前提为mysqld进程仍在运行中,否则无法使用下面演示过程进行恢复! 1.手工制造故障,删除ibdata1文件,注意不要重启mysql shell > rm -rf ibdat ...

  5. linux下安装及配置和启动memcached

    一.下载文件: 下载memcached和libevent,放到/hom/zwl/目录下 # wget http://www.danga.com/memcached/dist/memcached-1.2 ...

  6. JSON下

    JSON下:目录一:把 JSON 文本转换为 JavaScript 对象二:JSON 实例 - 来自字符串的对象 一.把 JSON 文本转换为 JavaScript 对象JSON 最常见的用法之一,是 ...

  7. python(七)字符串格式化、生成器与迭代器

    字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name) ...

  8. GMF中,删除节点和连线的另一种实现

    问题 在GMF中,如果需要programmatically删除节点或连线,在google中我们很容易搜索到<GMF中,删除节点和连线的实现>一文(我并不确定这是原创作者的原始链接),很多人 ...

  9. Android TextView自动换行文字排版参差不齐的原因

    今天项目没什么进展,公司后台出问题了.看了下刚刚学习Android时的笔记,发现TextView会自动换行,而且排版文字参差不齐.查了下资料,总结原因如下: 1.半角字符与全角字符混乱所致:这种情况一 ...

  10. Shell脚本查看apk签名信息

    用shell写了一个查看apk签名的脚本.代码很少也很简单 支持递归目录查询 #!/bin/bash #使用方法 ./getcertificate.sh xx.apk get_signature() ...