`
wanghlwin
  • 浏览: 37581 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Zxing qrcode 二维码的使用(生成和解析)

阅读更多

使用Zxing来对二维码生成和解析,例子中使用的是Zxing-2.0版,使用起来很简单,欢迎拍砖。(转载请注明作者)

 

package com.whl.qrcode;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.QRCodeReader;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class CreateQrCodeTest {

	public static void createQrCode(OutputStream outputStream, String content, int qrCodeSize, String imageFormat){
        try{
            // Create the ByteMatrix for the QR-Code that encodes the given String.
            Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<EncodeHintType, ErrorCorrectionLevel>();
            hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
            QRCodeWriter qrCodeWriter = new QRCodeWriter();
            BitMatrix byteMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize, hintMap);
            
            // Make the BufferedImage that are to hold the QRCode
            int matrixWidth = byteMatrix.getWidth();
            BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB);
            image.createGraphics();
            Graphics2D graphics = (Graphics2D) image.getGraphics();
            graphics.setColor(Color.WHITE);
            graphics.fillRect(0, 0, matrixWidth, matrixWidth);

            // Paint and save the image using the ByteMatrix
            graphics.setColor(Color.BLACK);
            for (int i = 0; i < matrixWidth; i++){
                for (int j = 0; j < matrixWidth; j++){
                    if (byteMatrix.get(i, j)){
                        graphics.fillRect(i, j, 1, 1);
                    }
                }
            }

            ImageIO.write(image, imageFormat, outputStream);
        }catch (Exception ex) {
        	ex.printStackTrace();
        }
    }
	
	public static void readQrCode(InputStream inputStream) throws IOException{
		
        //get the data from the input stream
		BufferedImage image = ImageIO.read(inputStream);

		//convert the image to a binary bitmap source
		LuminanceSource source = new BufferedImageLuminanceSource(image);
		BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

		//decode the barcode
		QRCodeReader reader = new QRCodeReader();

		Result result = null ;
		try {
		 result = reader.decode(bitmap);
		} catch (ReaderException e) {
		 //the data is improperly formatted
			e.printStackTrace();
		}

		System.out.println(result.getText());
	}

	public static void main(String[] args) throws IOException {

//		createQrCode(new FileOutputStream(new File("d:\\qrcode.jpg")),"name:whl",300,"JPEG");
	
		readQrCode(new FileInputStream(new File("d:\\qrcode.jpg")));
	}

}
 
分享到:
评论
1 楼 idoveu 2012-07-20  
谢谢分享。。。

相关推荐

    Zxing二维码生成与解析

    总结,Zxing是一个强大且灵活的二维码生成和解析工具,适合各种应用场景,无论你是开发者还是爱好者,都可以通过Zxing轻松实现二维码的创建和读取。对于想要深入了解二维码技术或者在项目中集成二维码功能的读者来说...

    zxing2.2 二维码的生成解析(java)

    在给定的“zxing2.2 二维码的生成解析(java)”主题中,我们将深入探讨ZXing库如何在Java环境中帮助开发者处理二维码的生成与解析。 1. **ZXing库介绍**: ZXing(读作“zebra crossing”)是由Google开发的一个多...

    zxing和qrcode二维码实现

    在Java编程中,ZXing(Zebra Crossing)和Swetake.util.Qrcode是两个常用的库,用于生成和读取二维码。现在我们来深入探讨这两个库的使用方法。 **ZXing(Zebra Crossing)** ZXing,由Google开发,是一个开源的二...

    labview编写的QR二维码的生成和解析实例

    在本实例中,我们探讨的是如何使用LabVIEW来生成和解析QR二维码,这是一种广泛应用于现代信息传递的技术。QR码,全称Quick Response Code,快速响应码,能够存储大量的数据,如网址、文本、联系信息等,并且可以通过...

    使用google-zxing 生成二维码的简单小实例

    在IT行业中,生成二维码是一种...总之,ZXing库提供了一个强大的工具集,使得开发者能够轻松地在各种应用中实现二维码的生成和解析。无论是在移动应用、网站还是桌面程序中,ZXing都能帮助你实现高效的数据交换功能。

    zxing有关qrcode二维码源码的vs2010编译

    ZXing(Zebra Crossing)是一个开源的、多平台的条形码和二维码读取与生成库,由Google开发。在给定的标题和描述中,我们聚焦于如何使用ZXing库,特别是关于QR码(Quick Response Code)的部分,并且关注在Visual ...

    QrCode 二维码生成与解析

    本主题将深入探讨“QrCode 二维码生成与解析”,包括如何使用JavaScript生成二维码以及如何利用Java工程解析二维码图片文件。 首先,我们来看二维码生成的过程。在JavaScript环境下,可以借助开源库如`qrcode-...

    Qrcode二维码java生成项目(带logo)

    本项目"Qrcode二维码java生成项目(带logo)"旨在帮助开发者快速创建带有自定义logo的二维码。下面将详细介绍这个项目及其相关知识点。 首先,我们需要了解的是二维码的基本原理。二维码是一种二维条形码,能够存储...

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

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

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

    首先,我们可以使用ZXing库的API生成标准的黑白二维码和条形码,这些API通常包括设置数据内容、指定编码格式、调整尺寸等功能。生成过程涉及将输入的数据转换成二进制矩阵,然后转化为黑白点阵的图像。 进一步,...

    Java QRCode二维码生成与识别 开源

    总的来说,这个Java QRCode二维码生成与识别开源项目提供了一整套解决方案,从生成包含汉字的二维码到读取和解析二维码图像。开发者可以利用这些工具进行各种应用开发,如移动支付、信息分享、门票验证等。通过深入...

    zxing生成、解析二维码

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

    zxing生成二维码所需jar包

    总之,ZXing是一个强大的条码处理库,对于Java开发者来说,它是生成和解析二维码的理想选择。通过理解和运用ZXing的相关API,我们可以轻松地将二维码功能集成到自己的应用中,满足各种业务需求。

    qrcode生成二维码和解析二维码jar包,以及zxing二维码相关包

    qrcode生成二维码和识别二维码所需要的jar包,以及zxing二维码相关的jar包,但是有个缺点就是有时候部分二维码识别不了,暂时无解。 如果是移动端的二维码开发,尽量让移动端开发,移动端有框架。

    C# 二维码的生成与解析

    一个常用的开源库是ZXing.NET,它基于流行的ZXing(Zebra Crossing)库,提供了多种条形码和二维码的生成与解析功能。安装ZXing.NET可以通过NuGet包管理器,搜索"ZXing.Net"并添加到项目中。 接下来,我们将介绍...

    java二维码解析 zxing2.2及QRCode实现

    2. 创建二维码:使用ZXing或QRCode.jar的API,传入要编码的数据和一些可选参数(如尺寸、颜色等),生成二维码图像。 3. 解析二维码:读取二维码图像文件,然后使用对应的解码方法获取隐藏在图像中的数据。 4. 错误...

    利用Google的ZXing工具包,生成和解析二维码图片

    通过上述步骤,你就可以在Java项目中实现ZXing工具包的二维码生成和解析功能了。ZXing的灵活性和强大的功能使其成为开发中处理条码和二维码的理想选择。不过,在实际应用中,还需要考虑错误处理、图像预处理、以及...

    Qrcode、zxing制作二维码

    Qrcode和ZXing是两个与二维码制作密切相关的开源库。 Qrcode,全称为Quick Response Code,是由日本Denso Wave公司开发的一种矩阵式二维条码。它能够在有限的空间内存储大量的数据,包括字母、数字、符号甚至汉字。...

    Zxing生成二维码扫描二维码

    《Zxing:全方位解析二维码生成与扫描》 Zxing,全称“Zebra Crossing”,是一款开源的、跨平台的二维码和条形码处理库。它提供了丰富的功能,包括二维码生成、扫描识别,使得开发者能够在自己的应用程序中轻松集成...

    使用zxing加密解析二维码

    在“使用ZXing加密解析二维码”这一主题中,我们将深入探讨如何利用ZXing库实现二维码的加密和解码过程。首先,我们需要理解二维码的基本结构。二维码是一种二维条形码,可以存储更多的数据,包括文本、网址、联系...

Global site tag (gtag.js) - Google Analytics