java實現二維碼---實現方式2

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

發佈了28 篇原創文章 · 獲贊 11 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章