几行代码搞定java生成解析二维码功能

最近公司要求扫描二维码和生成二维码的功能。而群里部分网友也提到了。我这里就写了一个demo,和大家分享。代码很简介,希望大家能够喜欢。

网友表示在网上搜索了很多,发现不是代码不全,就是jar不匹配。

我这里共享了一个zxing的2.2版本的例子,也提供了下载地址。实现代码如下:

package com.herman.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.NotFoundException;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

/**
 * 二维码工具类
 * @author Herman.Xiong
 * @date 2015-7-10 上午10:52:15
 * @version V3.0
 * @since jdk 1.6,tomcat 6.0
 */
public class ZxingUtil {
	private static final Map<EncodeHintType, ErrorCorrectionLevel> encodeMap = new HashMap<EncodeHintType, ErrorCorrectionLevel>();
	private static final Map<DecodeHintType, ErrorCorrectionLevel> decodeMap=new HashMap<DecodeHintType, ErrorCorrectionLevel>();
	private static final String charset="UTF-8",format="png";
	private static final int size=150;
	private ZxingUtil() {}

	/**
	 * 生成二维码图片
	 * @author Herman.Xiong
	 * @date 2015-7-10 上午10:26:33
	 * @param file
	 * @throws WriterException
	 * @throws IOException
	 */
	public static void createQRCode(String data, File file)
			throws WriterException, IOException {
		MatrixToImageWriter.writeToFile(new MultiFormatWriter().encode(
				new String(data.getBytes(charset), charset),
				BarcodeFormat.QR_CODE, size, size, encodeMap), format, file);
	}

	/**
	 * 读取二维码信息
	 * @author Herman.Xiong
	 * @date 2015-7-10 上午10:25:58
	 * @param filePath 二维码图片路径
	 * @return
	 * @throws FileNotFoundException
	 * @throws IOException
	 * @throws NotFoundException
	 */
	public static String readQRCode(String filePath)
			throws FileNotFoundException, IOException, NotFoundException {
		return new MultiFormatReader().decode(new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(new FileInputStream(filePath))))),decodeMap).getText();
	}

	public static void main(String [] arg){
		try{
			createQRCode("http://blog.csdn.net/xmtblog", new File("D:\\111.png"));
			System.out.println(readQRCode("D:\\111.png"));
			//源码下载地址:http://download.csdn.net/detail/xmt1139057136/8886473
			//欢迎大家关注我的博客!如有疑问,请加QQ群:454796847共同学习!
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

运行效果如下:
欢迎大家关注我的博客!如有疑问,请加QQ群:454796847共同学习!

源码下载地址:http://download.csdn.net/detail/xmt1139057136/8886473

时间: 2024-12-06 02:45:17

几行代码搞定java生成解析二维码功能的相关文章

用CIFilter生成QRCode二维码图片

用CIFilter生成QRCode二维码图片 CIFilter不仅仅可以用来做滤镜,它还可以用来生成二维码. CIFilterEffect.h + CIFilterEffect.m // // CIFilterEffect.h // CIFilter // // Created by YouXianMing on 14-5-9. // Copyright (c) 2014年 Y.X. All rights reserved. // #import <Foundation/Foundation.h

asp.net C#生成和解析二维码代码

  类库文件我们在文件最后面下载 [ThoughtWorks.QRCode.dll 就是类库] 使用时需要增加: using ThoughtWorks.QRCode.Codec; using ThoughtWorks.QRCode.Codec.Data; using ThoughtWorks.QRCode.Codec.Util; 主要源代码: 1.生成二维码 代码如下   QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); String enco

asp.net C#生成和解析二维码的实例代码_实用技巧

类库文件我们在文件最后面下载 [ThoughtWorks.QRCode.dll 就是类库] 使用时需要增加: 复制代码 代码如下: using ThoughtWorks.QRCode.Codec; using ThoughtWorks.QRCode.Codec.Data; using ThoughtWorks.QRCode.Codec.Util; 主要源代码: 1.生成二维码 复制代码 代码如下: QRCodeEncoder qrCodeEncoder = new QRCodeEncoder()

google zxing 生成和解析二维码

maven 项目pom.xml文件配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&qu

基于zxing生成与解析二维码、条形码

     基于zxing(https://github.com/zxing/zxing)与maven,针对二维码(包括带图片的二维码).条形码进行了简单的封装,以便在项目中更好的利用.     ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了多种平台下的客户端包括:J2ME.J2SE和Android      关于二维码的生成细节与原理,请参考:http://coolshell.cn/arti

Android中二维码的生成方法(普通二维码、中心Logo 二维码、及扫描解析二维码)

首先声明我们通篇用的都是Google开源框架Zxing,要实现的功能有三个 ,生成普通二维码.生成带有中心图片Logo 的二维码,扫描解析二维码,直接上效果图吧 首先我们需要一个这样的 Zxing 的包类似于这样 接下来需要引入资源 1.drawable 中引入图片 navbar.png 2.layout中引入camera.xml.main.xml.qrcode_capture_page.xml 3.创建raw文件夹并添加beep.ogg 扫描声音 4.合并color.xml,copy ids.

Android 点击生成二维码功能实现代码

先看效果: 输入内容,点击生成二维码: 点击logo图案: 代码: QRCodeUtil: package com.example.administrator.zxing; import android.graphics.Bitmap; import android.graphics.Canvas; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zx

Android应用--QR的生成(二维码)

Android应用--QR的生成(二维码)  什么是ZING,你真的理解吗? 二维码的定义:          二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的. 在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等.1.堆叠式/行排式二维条

我的Android进阶之旅------&amp;gt;QR的生成(二维码)

本文转载于:http://blog.csdn.net/dlutbrucezhang/article/details/8582839 二维码的定义: 二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的. 在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Cod