您的位置:首页 > 其它

zxing方式生成二维码

2017-03-24 21:53 169 查看
1.用zxing方式生成:需要的jar包---------https://pan.baidu.com/s/1qX8D7AW

package com.lrq.entity;

import java.io.File;

import java.nio.file.Path;

import java.util.HashMap;

import com.google.zxing.BarcodeFormat;

import com.google.zxing.EncodeHintType;

import com.google.zxing.MultiFormatWriter;

import com.google.zxing.WriterException;

import com.google.zxing.client.j2se.MatrixToImageWriter;

import com.google.zxing.common.BitMatrix;

import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class CreateQRCode {
private static final BarcodeFormat BarcodeFormat = null;
public static void main(String[] args){
int width=300;
int height=300;
String format="png";
String content="www.baidu.com";

HashMap hints=new HashMap();
/*字符编码*/
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
/*纠错等级*/
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
/*外边距*/
hints.put(EncodeHintType.MARGIN,2);

try {
BitMatrix bitMatrix=new MultiFormatWriter().encode(content,BarcodeFormat.QR_CODE, height, width,hints);
Path file=new File("D:/img.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix,format,file);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

2.解析二维码

package com.lrq.entity;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import java.util.HashMap;

import javax.imageio.ImageIO;

import com.google.zxing.BinaryBitmap;

import com.google.zxing.EncodeHintType;

import com.google.zxing.MultiFormatReader;

import com.google.zxing.NotFoundException;

import com.google.zxing.Result;

import com.google.zxing.client.j2se.BufferedImageLuminanceSource;

import com.google.zxing.common.HybridBinarizer;

import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class ReadQR_Code {
public static void main(String[] args){
MultiFormatReader formatReader=new MultiFormatReader();
File file=new File("D:/img.png");
BufferedImage image;
try {
image = ImageIO.read(file);
   HashMap hints=new HashMap();
   /*字符编码*/
   hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
   BinaryBitmap binaryBitmap=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
   Result result=formatReader.decode(binaryBitmap,hints);
   
   System.out.println("解析结果:"+result.toString());
   System.out.println("解析格式"+result.getBarcodeFormat());
   System.out.println("解析文本"+result.getText()); 
} catch (NotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: