生成二维码

1、使用 jquery.qrcode  生成二维码

   jquery.qrcode 是依赖于jQuery,在前端生成二维码

   1)使用时需要引入两个文件: jQuery   和   jquery.qrcode.min.js

   2)页面中添加 div : <div   id="qrcode"></div>

   3)调用js方法生成即可:$('#qrcode').qrcode("http://www.baidu.com");

   4)代码如下:

function createQRCode(){
$('#qrcode').qrcode("http://www.baidu.com");
}

2、使用google的zxing生成二维码

    1)、代码地址:https://github.com/zxing/zxing/tree/zxing-3.0.0

    2)、引入jar : core-3.0.0.jar  / BufferedImageLuminanceSource / MatrixToImageConfig  / MatrixToImageWriter

    3)、生成解析代码如下

package com.base.pf.base.util;

import java.awt.image.BufferedImage;
import java.io.File;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

import org.junit.Test;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.Binarizer;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;

/**
 * @Description 普通二维码生成
 * @author ZHEN.L
 * @date 2016.10.10
 */
public class QRCodeByZXing {

	// https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe49318eb604cf00b&redirect_uri=http://hichinamobile.xicp.net/security/wx/record/toAddPage.do&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect

	private static Map<String, String> url = new HashMap<String, String>();
	private static final String qr = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe49318eb604cf00b&redirect_uri=${QR}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";

	static {
		url.put("qr",
				qr.replace("${QR}",
						"http://hichinamobile.xicp.net/security/wx/record/toAddPage.do"));
	}

	/**
	 * 二维码的生成
	 * 
	 */
	@Test
	public static String createCode(String name) {
		String path = "D:/tcjl/qrcode/"+name+".png";
		String format = "png";// 二维码的图片格式
		HashMap hints = new HashMap(); // 设置二维码的参数
		// 内容所使用编码
		hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
		try {
			BitMatrix bitMatrix = new MultiFormatWriter().encode(url.get("qr"),
					BarcodeFormat.QR_CODE, 300, 300, hints);
			// 生成二维码
			File file = new File(path);
			MatrixToImageWriter.writeToFile(bitMatrix, format, file);

		} catch (Exception e) {
			e.printStackTrace();
		}
		return path;
	}

	/**
	 * 二维码的解析
	 * 
	 * @param file
	 */
	public void parseCode(File file) {
		try {
			MultiFormatReader formatReader = new MultiFormatReader();

			if (!file.exists()) {
				return;
			}

			BufferedImage image = ImageIO.read(file);

			LuminanceSource source = new BufferedImageLuminanceSource(image);
			Binarizer binarizer = new HybridBinarizer(source);
			BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);

			Map hints = new HashMap();
			hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");

			Result result = formatReader.decode(binaryBitmap, hints);

			System.out.println("解析结果 = " + result.toString());
			System.out.println("二维码格式类型 = " + result.getBarcodeFormat());
			System.out.println("二维码文本内容 = " + result.getText());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值