java实现二维码---实现方式2(直接利用java代码生成二维码)
1.创建java项目demo2,项目下创建lib文件夹,引入jar包(zxing3.2.1.jar)
2.生成二维码的代码
package com.imoco.zxing;
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.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
//生成二维码
public class CreateORCode {
public static void main(String[] args) {
//定义要生成的参数
//生成大小
int width = 300;
int height = 300;
//生成格式
String format = "png";
String content = "www.imooc.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, width, height,hints);
Path file = new File("E:MyNewWorkSpace\\code\\img.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix, format, file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.解析二维码的代码
package com.imoco.zxing;
import java.awt.image.BufferedImage;
import java.io.File;
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.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
public class ReadORCode {
public static void main(String[] args) {
try {
//定义解析对象
MultiFormatReader formatReader = new MultiFormatReader();
//定义解析源
File file = new File("E:MyNewWorkSpace\\code\\img.png");
BufferedImage image = ImageIO.read(file);
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
//定义二维码的参数
HashMap hints = new HashMap();
hints.put(EncodeHintType.CHARACTER_SET,"utf-8");
//执行解析,获取result结果
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();
}
}
}
3.相关jar包下载地址:http://pan.baidu.com/s/1slruk1Z