`

Google Zxing 二维码生成与解析

阅读更多

        生成二维码的开源项目可谓是琳琅满目: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/”。

 

参考文章:http://www.cnblogs.com/java-class/p/5251690.html

  • 大小: 20.7 KB
分享到:
评论

相关推荐

    Zxing二维码生成与解析

    《Zxing:二维码生成与解析全面解析》 在数字化时代,二维码已经成为我们日常生活和工作中不可或缺的一部分,无论是信息传递、支付还是广告推广,二维码都扮演着重要角色。Zxing(ZXing,发音为“zebra crossing”...

    Google二维码生成(解析)zxing库Android

    Google二维码生成解析zxing库 Android 代码,可以实现二维码生成,亲测可用。 代码为2016年6月9日从GitHub下载的,版本为3.2.1 GitHub对应地址代码为: https://github.com/zxing/zxing jar包原始下载地址为:...

    com.google.zxing 二维码生成与解析

    **标题:“com.google.zxing 二维码生成与解析”** **核心知识点:** 1. **ZXing库介绍**:ZXing,全称为“Zebra Crossing”,是Google开发的一个开源的、跨平台的条码读取库。它支持多种条码和二维码格式,包括QR...

    Google zxing 二维码生成

    【Google zxing 二维码生成】是一个关于利用Google的ZXing(Zebra Crossing)库在Java环境中生成二维码的技术分享。ZXing,全称为“条形码扫描”,是一个开源项目,提供了多种条形码和二维码的读取与生成能力。在...

    谷歌zxing二维码生成jar包

    这个"谷歌zxing二维码生成jar包"是ZXing项目的一部分,专门用于生成二维码的Java库,适用于Android和Java应用程序。在Java应用程序中,我们可以直接引用这个jar包来实现二维码的生成,而无需关心复杂的编码细节。 ...

    zxing二维码生成和解析代码

    1. **二维码生成**:ZXing库提供了`com.google.zxing.client.j2se.MatrixToImageWriter`类,用于将数据编码成二维码图像。首先,你需要创建一个`BitMatrix`对象,表示二维码的数据矩阵,然后调用`...

    zxing生成、解析二维码

    ZXing(Zebra Crossing)是一个开源的、多平台的条形码读取库,它支持多种格式的条形码和二维码生成与解析。在本文中,我们将深入探讨如何使用ZXing来生成和解析二维码,以及如何利用QRcode.java类创建二维码名片。 ...

    JAVA生成Zxing二维码

    以下将详细介绍如何使用Java和Zxing实现二维码的生成与读取。 1. **安装Zxing库** 首先,你需要在项目中引入Zxing库。如果你使用的是Maven,可以在`pom.xml`文件中添加如下依赖: ```xml &lt;groupId&gt;...

    google.zxing二维码带logo生成工具

    在使用`Google.zxing二维码生成工具`这个压缩包时,通常会包含以下部分: - 源代码:可能包含Java源文件,用于理解和学习如何使用ZXing库。 - 示例代码:展示如何生成、添加Logo以及解析二维码的示例程序,帮助...

    zxing 二维码生成工具类

    接下来,我们可以编写一个简单的二维码生成工具类,如下所示: ```java import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import ...

    zxing二维码jar包

    ZXing库提供了全面的二维码处理能力,包括生成二维码图像和解析二维码数据。 **生成二维码** 使用ZXing生成二维码,首先需要引入`zxing.jar`库。然后,你可以通过创建`MultiFormatWriter`对象,选择合适的编码格式...

    通过谷歌zxing 生成\解析 二维码

    综上所述,谷歌ZXing提供了一套完整的工具,用于生成和解析二维码,其灵活性和开源特性使其成为许多开发者的首选。通过理解和运用ZXing的关键组件,我们可以轻松地将二维码功能整合到各种应用程序中。

    java使用谷歌zxing实现二维码生成读取

    `QRCode.java`可能包含一个自定义的类,用于简化二维码生成和读取的操作,比如提供一个方法同时处理生成和解码的过程。`QRCodeFormat.java`则可能是用来定义二维码的格式或者参数设置,如容错级别、编码模式等。 在...

    Google ZXing 生成二维码

    **谷歌ZXing库生成二维码详解** 谷歌ZXing(Zebra Crossing)是一个开源的、多平台的条码读取和生成库。ZXing.Net是ZXing的.NET版本,它为C#开发者提供了方便的API,使得在.NET平台上生成和读取二维码变得简单易行...

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    Google开源的ZXing(Zebra Crossing)库为开发者提供了跨平台的二维码和条形码生成与解码能力。本项目以ZXing为基础,结合自定义功能,如生成带有Logo的彩色二维码,为开发人员提供了更丰富的应用场景。 ZXing(又...

    Google ZXing二维码处理核心jar包

    这个"Google ZXing二维码处理核心jar包"正是包含这些核心功能的库文件。通过这个jar包,开发者可以方便地在Java程序中实现二维码的生成、解码以及相关的数据处理。 ZXing的使用流程主要包括以下几个步骤: 1. **...

    二维码生成和解析

    二维码生成和解析是现代信息化技术中的重要组成部分,尤其在移动互联网和物联网领域中广泛应用。Java作为一门跨平台的编程语言,提供了丰富的库和工具来支持二维码的生成与解析。本篇将详细介绍如何在Java环境中实现...

    ZXing生成二维码包

    二维码生成** 生成二维码是ZXing库的核心功能之一。二维码可以存储大量的文本信息,如网址、联系信息、文本字符串等。在Java环境中,我们可以使用ZXing的`com.google.zxing.client.j2se.QRCodeWriter`类来创建一个...

    java使用Zxing包生成和识别二维码

    Zxing是Google提供的一款开源库,专门用于处理条形码(一维码、二维码)的生成与解析。它支持多种编码方式,并且能够方便地集成到各种项目中。在Java开发中,通过Zxing库,我们可以轻松实现二维码的生成与识别功能。...

    Zxing二维码生成及扫码源码

    2. 创建二维码生成器:创建一个`ZXing.QRCodeWriter`对象,这将作为生成二维码的主要工具。 3. 设置参数:根据需求,你可以调整二维码的错误校正级别和数据编码模式。 4. 生成二维码图像:调用`QRCodeWriter....

Global site tag (gtag.js) - Google Analytics