生成二维码的开源项目可谓是琳琅满目: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/”。
相关推荐
《Zxing:二维码生成与解析全面解析》 在数字化时代,二维码已经成为我们日常生活和工作中不可或缺的一部分,无论是信息传递、支付还是广告推广,二维码都扮演着重要角色。Zxing(ZXing,发音为“zebra crossing”...
Google二维码生成解析zxing库 Android 代码,可以实现二维码生成,亲测可用。 代码为2016年6月9日从GitHub下载的,版本为3.2.1 GitHub对应地址代码为: https://github.com/zxing/zxing jar包原始下载地址为:...
**标题:“com.google.zxing 二维码生成与解析”** **核心知识点:** 1. **ZXing库介绍**:ZXing,全称为“Zebra Crossing”,是Google开发的一个开源的、跨平台的条码读取库。它支持多种条码和二维码格式,包括QR...
【Google zxing 二维码生成】是一个关于利用Google的ZXing(Zebra Crossing)库在Java环境中生成二维码的技术分享。ZXing,全称为“条形码扫描”,是一个开源项目,提供了多种条形码和二维码的读取与生成能力。在...
ZXing(Zebra Crossing)是Google开发的一个开源项目,用于读取、生成多种条形码和二维码。在本文中,我们将深入探讨如何使用ZXing在Android应用中调用二维码功能,并解决在低版本设备上出现的白边问题。 首先,...
这个"谷歌zxing二维码生成jar包"是ZXing项目的一部分,专门用于生成二维码的Java库,适用于Android和Java应用程序。在Java应用程序中,我们可以直接引用这个jar包来实现二维码的生成,而无需关心复杂的编码细节。 ...
1. **二维码生成**:ZXing库提供了`com.google.zxing.client.j2se.MatrixToImageWriter`类,用于将数据编码成二维码图像。首先,你需要创建一个`BitMatrix`对象,表示二维码的数据矩阵,然后调用`...
ZXing(Zebra Crossing)是一个开源的、多平台的条形码读取库,它支持多种格式的条形码和二维码生成与解析。在本文中,我们将深入探讨如何使用ZXing来生成和解析二维码,以及如何利用QRcode.java类创建二维码名片。 ...
以下将详细介绍如何使用Java和Zxing实现二维码的生成与读取。 1. **安装Zxing库** 首先,你需要在项目中引入Zxing库。如果你使用的是Maven,可以在`pom.xml`文件中添加如下依赖: ```xml <groupId>...
在使用`Google.zxing二维码生成工具`这个压缩包时,通常会包含以下部分: - 源代码:可能包含Java源文件,用于理解和学习如何使用ZXing库。 - 示例代码:展示如何生成、添加Logo以及解析二维码的示例程序,帮助...
接下来,我们可以编写一个简单的二维码生成工具类,如下所示: ```java import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import ...
ZXing库提供了全面的二维码处理能力,包括生成二维码图像和解析二维码数据。 **生成二维码** 使用ZXing生成二维码,首先需要引入`zxing.jar`库。然后,你可以通过创建`MultiFormatWriter`对象,选择合适的编码格式...
综上所述,谷歌ZXing提供了一套完整的工具,用于生成和解析二维码,其灵活性和开源特性使其成为许多开发者的首选。通过理解和运用ZXing的关键组件,我们可以轻松地将二维码功能整合到各种应用程序中。
`QRCode.java`可能包含一个自定义的类,用于简化二维码生成和读取的操作,比如提供一个方法同时处理生成和解码的过程。`QRCodeFormat.java`则可能是用来定义二维码的格式或者参数设置,如容错级别、编码模式等。 在...
**谷歌ZXing库生成二维码详解** 谷歌ZXing(Zebra Crossing)是一个开源的、多平台的条码读取和生成库。ZXing.Net是ZXing的.NET版本,它为C#开发者提供了方便的API,使得在.NET平台上生成和读取二维码变得简单易行...
Google开源的ZXing(Zebra Crossing)库为开发者提供了跨平台的二维码和条形码生成与解码能力。本项目以ZXing为基础,结合自定义功能,如生成带有Logo的彩色二维码,为开发人员提供了更丰富的应用场景。 ZXing(又...
这个"Google ZXing二维码处理核心jar包"正是包含这些核心功能的库文件。通过这个jar包,开发者可以方便地在Java程序中实现二维码的生成、解码以及相关的数据处理。 ZXing的使用流程主要包括以下几个步骤: 1. **...
二维码生成和解析是现代信息化技术中的重要组成部分,尤其在移动互联网和物联网领域中广泛应用。Java作为一门跨平台的编程语言,提供了丰富的库和工具来支持二维码的生成与解析。本篇将详细介绍如何在Java环境中实现...
二维码生成** 生成二维码是ZXing库的核心功能之一。二维码可以存储大量的文本信息,如网址、联系信息、文本字符串等。在Java环境中,我们可以使用ZXing的`com.google.zxing.client.j2se.QRCodeWriter`类来创建一个...
Zxing是Google提供的一款开源库,专门用于处理条形码(一维码、二维码)的生成与解析。它支持多种编码方式,并且能够方便地集成到各种项目中。在Java开发中,通过Zxing库,我们可以轻松实现二维码的生成与识别功能。...