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

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: <p>最近公司要求扫描二维码和生成二维码的功能。而群里部分网友也提到了。我这里就写了一个demo,和大家分享。代码很简介,希望大家能够喜欢。</p><p>网友表示在网上搜索了很多,发现不是代码不全,就是jar不匹配。</p><p>我这里共享了一个zxing的2.2版本的例子,也提供了下载地址。实现代码如下:</p><p></p><pre name="code" class="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

目录
相关文章
|
18小时前
|
存储 缓存 监控
如何优化你的Java代码性能
如何优化你的Java代码性能
|
1天前
|
Java
解析Java线程池:参数详解与执行流程
解析Java线程池:参数详解与执行流程
6 1
|
1天前
|
安全 Java UED
深度解析Java中方法内的异步调用实践与应对方案
深度解析Java中方法内的异步调用实践与应对方案
6 1
|
21小时前
|
存储 安全 Java
探索JAVA泛型:让代码在编译时就拥有金钟罩铁布衫!
【6月更文挑战第28天】Java泛型,自1.5版起,是代码安全性的守护者。它允许在类、接口和方法中使用类型参数,减少重复代码,提升可读性。泛型在编译时执行类型检查,防止运行时类型错误,如同给代码穿上“金钟罩铁布衫”。以Box类为例,泛型避免了显式转换,确保类型安全,让编程更加高效和无忧。
|
22小时前
|
存储 前端开发 Java
Java 代码执行的原理解读
Java 代码执行的原理解读
|
1天前
|
Java
Java 8 Collectors 深入解析与示例
Java 8 Collectors 深入解析与示例
4 0
|
1天前
|
设计模式 Java 中间件
深入探索Java设计模式:责任链模式解析与实践
深入探索Java设计模式:责任链模式解析与实践
4 0
|
1天前
|
算法 Java 调度
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
《面试专题-----经典高频面试题收集四》解锁 Java 面试的关键:深度解析并发编程进阶篇高频经典面试题(第四篇)
6 0
|
1天前
|
设计模式 Java 开发者
Java中的代码优雅重构实战
Java中的代码优雅重构实战
|
1天前
|
设计模式 Java 开发者
Java中的设计模式深度解析
Java中的设计模式深度解析

推荐镜像

更多