生成二维码的开源项目可谓是琳琅满目:SwetakeQRCode、BarCode4j、Zxing等等。前端有JQuery-qrcode,同样能实现生成二维码。
选择Zxing的原因可能是觉得Google公司是很著名的公司吧。
其实使用起来相当的简单,我这里使用的是最新3.2 Zxing.jar ,省的你找jar的时间,下面是下载地址。
一.生成二维码
public static String createQrcode(){ String qrcodeFilePath = ""; try { int qrcodeWidth = 300; int qrcodeHeight = 300; String qrcodeFormat = "png"; HashMap<EncodeHintType, String> hints = new HashMap<EncodeHintType, String>(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); BitMatrix bitMatrix = new MultiFormatWriter().encode("http://bijian1013.iteye.com/", BarcodeFormat.QR_CODE, qrcodeWidth, qrcodeHeight, hints); BufferedImage image = new BufferedImage(qrcodeWidth, qrcodeHeight, BufferedImage.TYPE_INT_RGB); Random random = new Random(); File QrcodeFile = new File("D:\\qrcode\\" + random.nextInt() + "." + qrcodeFormat); ImageIO.write(image, qrcodeFormat, QrcodeFile); //MatrixToImageWriter.writeToFile(bitMatrix, qrcodeFormat, QrcodeFile); OutputStream out = new FileOutputStream(QrcodeFile); MatrixToImageWriter.writeToStream(bitMatrix, qrcodeFormat, out); qrcodeFilePath = QrcodeFile.getAbsolutePath(); } catch (Exception e) { e.printStackTrace(); } return qrcodeFilePath; }
a.上述代码中的 hints,为生成二维码时的一些参数设置,实现者将它构建Map类型的参数。
b.上述生成实现当中,每生成一个二维码都会存放在目录下面,名称取整数随机数。
c.MultiFormatWriter 对象为生成二维码的核心类,后面的 MatrixToImageWriter 只是将二维码矩阵输出到图片上面。
二.解析二维码
public static String decodeQr(String filePath) { String retStr = ""; if ("".equalsIgnoreCase(filePath) && filePath.length() == 0) { return "图片路径为空!"; } try { BufferedImage bufferedImage = ImageIO.read(new FileInputStream(filePath)); LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage); Binarizer binarizer = new HybridBinarizer(source); BinaryBitmap bitmap = new BinaryBitmap(binarizer); HashMap<DecodeHintType, Object> hintTypeObjectHashMap = new HashMap<DecodeHintType, Object>(); hintTypeObjectHashMap.put(DecodeHintType.CHARACTER_SET, "UTF-8"); Result result = new MultiFormatReader().decode(bitmap, hintTypeObjectHashMap); retStr = result.getText(); } catch (Exception e) { e.printStackTrace(); } return retStr; }
a.读取二维码图片,并送给 Zxing LuminanceSource 和 Binarizer 两兄弟的处理。
b.处理完的位图和相应的解析参数,交由 MultiFormatReader 处理,并返回解析后的结果。
c.如果对上述 两兄弟的处理 和 MultiFormatReader的解析有兴趣,可以读读源码。
三.运行效果
1.生成二维码图片
public static void main(String[] args) { ZxingDemo.createQrcode(); }
执行上面的方法,将会在D:\qrcode目录下生成一个二维码图片,如下所示:
可以直接用微信扫描,打开http://bijian1013.iteye.com/网址,当然,也可以用decodeQr方法解析此二维码。
2.解析二维码
public static void main(String[] args) { //ZxingDemo.createQrcode(); String retStr = ZxingDemo.decodeQr("D:\\qrcode\\-2018013175.png"); System.out.println(retStr); }
执行上面的方法,输出字符串“http://bijian1013.iteye.com/”。
相关推荐
Google二维码生成解析zxing库 Android 代码,可以实现二维码生成,亲测可用。 代码为2016年6月9日从GitHub下载的,版本为3.2.1 GitHub对应地址代码为: https://github.com/zxing/zxing jar包原始下载地址为:...
两个资源包,找了很久,都要50个下载 现在拿出来,只要5个
谷歌zxing 生成\解析 二维码 ,包括 MatrixToImageWriter,BufferedImageLuminanceSource方法
工具包含单独生成二维码,向二维码图片增加logo。解析二维码
qrcode zxing 二维码生成解析,代码齐全。 import com.google.zxing.*; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.BitMatrix; import ...
zxing是google开源的二维码生成和解析工具,可用于j2me和android项目中,2.1是最新版的。
利用Google ZXing 实现Java 二维码生成、解析。
使用google开源zxing工具自己整理的二维码和条形码成功和解析代码, 新增加了生成带logo小图片的彩色二维码例子。 附加图片: 把img下面的图片放到c盘下做测试用
Google二维码生成解析zxing库 Android 代码,可以实现二维码生成,扫描,亲测可用。 我已将jar包下载集成到压缩包中了,各位无需再单独下jar包,直接就能跑androidtest项目。 代码为2016年6月9日从GitHub下载的,...
Google ZXing生出解析多种格式二维码,使用java生成解析条形码,二维码
使用 google zxing扫描二维码
解压包之后,将core.jar引入工程中,将助手类复制到工程中,调用助手类的方法,可以直接生成二维码了。这个生成方式兼容能力比较差,不兼容微信的扫描,只能兼容常见的专门扫描二维码的app应用。
目标:借助Google提供的ZXing Core工具包,使用Java语言实现二维码的生成和解析。maven项目中,pom.xml中引入ZXing Core工具包。
google开源二维码,条形码生成解析工具包。 3.3, 3.2.1, 3.2, 2.2版本都有
使用google开源zxing工具自己整理的二维码编码和解析代码,将logo按比例压缩后添加至彩色二维码中。
基于zxing的扫一扫,优化了扫描二维码速度,集成最新版本的jar包(zxing-core.jar 3.3.3),集成简单,速度快,可配置颜色,还有闪光灯,解析二维码图片,生成二维码等功能
基于google开源的zxing生成和解析二维码,可以生成带徽标的二维码 本项目主要是基于zxing生成和解析二维码,代码非常简单,主要是对zxing api的使用。项目中主要提供了两个工具类(EncodeQrCodeUtil.java和...
Google开源框架Zxing,实现的功能有三个 ,生成普通二维码、生成带有中心图片Logo 的二维码,扫描解析二维码
google,最新的二维码,生成zxing-3.2.1.jar.开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码
google二维码和条形码 生成,解析 google二维码和条形码 生成,解析