一、zxing 的 jar 包及源码下载

http://code.google.com/p/zxing/downloads/list

本示例选择的是ZXing-2.0.zip

二、将下载的 ZXing-2.0.zip 解压,取出 core 及 javase ,将 core 包下的

com/google/zxing/qrcode/encoder/Encoder.java  的

static final String DEFAULT_BYTE_MODE_ENCODING = "ISO-8859-1";

改成

static final String DEFAULT_BYTE_MODE_ENCODING = "utf-8";

以支持中文

三、生成代码

1. GenerateQRCode.java

其中的 DateUtils.getStringDate1() 是一个时间格式的String类型(yyyyMMddHH:mm:ss)

import java.awt.image.BufferedImage;
import java.io.File;import javax.imageio.ImageIO;import org.apache.log4j.Logger;import cn.com.do1.component.util.DateUtils;import com.google.zxing.BarcodeFormat;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;/*** @ClassName: GenerateQRCode* @Description: 生成二维码* @author * @company * @date 2012-11-9* @version V1.0*/
public final class GenerateQRCode {private static final Logger log = Logger.getLogger(GenerateQRCode.class);private static final GenerateQRCode instance = new GenerateQRCode();private GenerateQRCode() {}public static GenerateQRCode getInstance() {return instance;}private static final int BLACK = 0xff000000;private static final int WHITE = 0xFFFFFFFF;/*** @Title: generate* @Description: 生成二维码* @param assetsName*            二维码图片名称* @param params*            二维码信息* @param width*            生成的图片的宽* @param height*            生成的图片的高* @param path*            二维码图片存放目录* @throws Exception* @return String 二维码图片名称* @author * @date 2012-11-9*/public String generate(String assetsName, String params, String path,int width, int height) throws Exception {log.info("GenerateQRCode-->start to generate qrcode.");log.info("the qrcode's save path is:" + path);File file = new File(path);if (!file.exists()) {file.mkdirs();}// 二维码图片名称String fileName = assetsName.concat("_").concat(DateUtils.getStringDate1()).concat(".png");// 二维码图片存放路径path = path.concat(fileName);log.info("the qrcode's path is:" + path);file = new File(path);if (!file.exists()) {file.createNewFile();}BitMatrix bitMatrix = new MultiFormatWriter().encode(params,BarcodeFormat.QR_CODE, width, height);writeToFile(bitMatrix, "png", file);log.info("GenerateQRCode-->end to generate qrcode.");return fileName;}public static void writeToFile(BitMatrix matrix, String format, File file)throws Exception {BufferedImage image = toBufferedImage(matrix);ImageIO.write(image, format, file);}public static BufferedImage toBufferedImage(BitMatrix matrix) {int width = matrix.getWidth();int height = matrix.getHeight();BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_ARGB);for (int x = 0; x < width; x++) {for (int y = 0; y < height; y++) {image.setRGB(x, y, matrix.get(x, y) == true ? BLACK : WHITE);}}return image;}
}

四、调用

其中,Constants.CHANGE_LINE 表示换行符 \r\n

public void encode() {// 二维码内容StringBuffer params = new StringBuffer();params.append("资产名称:").append("你好").append(Constants.CHANGE_LINE);params.append("资产编号:").append("adfadf").append(Constants.CHANGE_LINE);params.append("资产类型:").append("网络设备").append(Constants.CHANGE_LINE);params.append("所属部门:").append("综合部").append(Constants.CHANGE_LINE);params.append("制码时间:").append(DateUtils.getStringDate()).append(Constants.CHANGE_LINE);params.append("审核人:").append("管理员");// 二维码图片生成路径String path = "D:\\Project\\foshan_tobacco\\code\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\fsycsms\\images\\qrcodeImg\\";try {String imgPath = GenerateQRCode.getInstance().generate("你好",params.toString(), path, 200, 200);System.out.println(imgPath);System.out.println("生成二维码成功");} catch (WriterException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}

五、附件

具体的代码请查看附件 fsycsms-qrcode.rar

附件的工程是一个maven工程。

请导入 eclipse 中,eclipse 我使用的版本是 eclipse-jee-indigo-SR2-win32    (3.7的)

工程中的代码结构如下:

其中的源包(Source Folder) src/qrcode/core 和 src/qrcode/javase ,就是在上面第2步中取出的包

使用google的zxing制作二维码相关推荐

  1. 【笔记】Qrcode、zxing制作二维码

    [Qrcode版] package com.athl.utils;import java.awt.Color; import java.awt.Graphics2D; import java.awt. ...

  2. JAVA利用google的zxing解析二维码QRCODE

    1.导入jar包,如果是非maven工程就去mvnrepository.com搜索zxing,下载本jar包即可 <dependency><groupId>com.google ...

  3. GJM : Unity3D结合ZXING制作二维码识别

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  4. zxing 生成二维码,可设置logo、二维码颜色、白边大小

    主要是使用google的zxing 生成二维码,可设置logo.二维码前景色/后景色.白边大小.二维码大小 1.用到jar包 <dependency><groupId>com. ...

  5. 使用Java代码制作二维码(超级简单)

    操作步骤 真的是灰常简单,导入三个jar包,十几行代码就搞定了. 源代码和jar包已经打包放在阿里云盘里面,文末有链接. import com.google.zxing.BarcodeFormat; ...

  6. 如何用java制作二维码

    首先:进入这个网址 github.com/zxing/. 将他复制成功后,就让他导出 就成这样啦 然后就新建个项目把刚才的包导入新建的项目 就像这样 接下来开始进行包的配置 . 这样大部分就弄完啦 接 ...

  7. 基于zxing生成二维码

    目录 1.二维码的原理 2.基于zxing生成二维码 3.逻辑及其应用 完整代码:https://github.com/122537067/zxingQRcodeLogoColor 效果图: 1.二维 ...

  8. 使用zxing实现二维码,并解析二维码

    使用zxing生成二维码,会比较简单.很适合初学者学习. 这是用QR Code生成和解析二维码文章地址:https://blog.csdn.net/qq_41879385/article/detail ...

  9. Android实战——Zxing实现二维码扫描

    Zxing实现二维码扫描 前言: 本篇文章从初学者的角度出发,从一个不知道对二维码扫描怎么下手的工作者,需要一个简单的扫描功能的话,可以阅读该篇文章.作为Google开源框架Zxing,里面的文件很大 ...

  10. Zxing生成二维码思路和源码解析

    Zxing生成二维码思路和源码解析 本博文是一篇介绍google zxing包生成二维码的思路和它的源码的文章. 一.引入 如何调用zxing的代码生成一个二维码呢?主要的函数只有一个,如下所示: B ...

最新文章

  1. TensorFlow领衔,七大深度学习框架大对比!
  2. include与jsp:include区别【转载】
  3. 配置vsftpd的遇到的坑及搭建虚拟账户
  4. 3秒获得Win11系统管理员权限,微软高危漏洞被公开,只因悬赏奖金打骨折
  5. Struts(十):OGNL表达式(一)
  6. 设计模式七:单例模式
  7. UA MATH566 统计理论4 贝叶斯统计基础1
  8. 将dataGridView数据转成DataTable
  9. android image设置adjustviewbounds_探索 Android 平台的 CameraX
  10. 史上最真实行业鄙视链
  11. 本地Nginx+Hosts配置本地前端代码和后端代码联调
  12. epoch,batch
  13. 【BZOJ 1038】 1038: [ZJOI2008]瞭望塔
  14. Java从json串中获取某个值
  15. 数据结构严蔚敏(c语言版)课后算法题答案-栈和队列
  16. SAI2.0绘画软件中文版(已测可用)
  17. 升级版DC/DC转换器有什么优点?
  18. Studio 3T过期了的解决办法,亲测有效
  19. 【老生谈算法】matlab实现非线性拟合曲线源码——非线性拟合曲线
  20. 【python】详解pandas库的pd.merge_ordered与pd.merge_asof

热门文章

  1. Guarded Suspension模式
  2. 云计算计算机二级,全国计算机等级考试二级MS+Office高级应用真题题库2+2020年3月-20210613095444.pdf-原创力文档...
  3. 力扣刷题 DAY_66 回溯
  4. 利用 yEd 软件做元数据管理
  5. yED Editor Getting Start
  6. mysql secure_file_priv 属性相关的文件读写权限问题
  7. python中pow函数用法_Python pow()用法及代码示例
  8. android渠道首发规则,酷传推广手册Android渠道首发规则.doc
  9. oracle触发器和包,Oracle 学习笔记 19 -- 触发器和包浅析(PL/SQL)
  10. 1.3数据库系统的组成及特点