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