一、增加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. Oracle常用操作-----(一)

    Oracle创建约束: ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束内容. [注]Oracle中的default是一个值,而sql server中的default是一个约束 ...

  2. jsp 环境配置记录

    1. jdk,下载地址1 环境变量配置: 1)新建 JAVA_HOME 变量 . 变量值填写jdk的安装目录(本人是 C:\Java\jdk1.7.0) 2)  系统变量→寻找 Path 变量→编辑 ...

  3. Datatable的查找和排序(Datatable.Select)

    Datatable  是一种常用的数据结构.数据类型有点类似于数据库中的表结构.在没有使用优秀的orm框架前,大部分的数据库的数据都是先变为Datatable 然后再通过代码转换变成 object. ...

  4. jquery file upload 文件上传插件

    1. jquery file upload 下载 jquery file upload Demo 地址:https://blueimp.github.io/jQuery-File-Upload/ jq ...

  5. TCMalloc的使用

    Windows下: 1. 编译libtcmalloc_minimal,编成静态的动态的都可以. 2. 在链接中设置附加依赖库libtcmalloc_minimal.lib,并且强制符号引用要加上__t ...

  6. dynamics_cast<>

    #include <iostream> class A { public: A(){} ~A(){} ;} }; class B:public A { public: B(){} ~B() ...

  7. 一个解决chrome浏览器下input标签当autocomplete的时候背景变黄色同时input背景图片消失方案

    最近在改一个bug即如标题所讲的一样,chrome浏览器下当input标签开启autocomplete的时候input的背景颜色变黄同时在input的背景图片也被覆盖了.为此百度了好久发现网上说的使用 ...

  8. mysql查询优化器为什么可能会选择错误的执行计划

    有可能导致mysql优化器选择错误的执行计划的原因如下: A:统计信息不准确,mysql依赖存储引擎为其提供的统计信息来评估成本,然而有的存储引擎提供的信息是准确的,有的引擎提供的可能就偏差很大,如: ...

  9. noi 1768 最大子矩阵

    题目链接:http://noi.openjudge.cn/ch0206/1768/ 可能是数据修改了吧,O(n6)过不了了. 主要是在求一个矩阵的和时,重复计算了很多次. 矩阵首先压缩一下.在输入的时 ...

  10. 服务器端查看log的shell脚本

    持续过滤log脚本 服务器端持续查看log的shell脚本(其中path1和path2替换为路径特征名,“tail -f”后面接的路径替换为路径特征名所对应的log文件路径): #! /bin/sh ...