java 通过zxing实现二维码

来源:互联网 发布:java构建工具 编辑:程序博客网 时间:2024/05/05 23:35

1:引入maven 依赖

  <dependencies>
  <dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>core</artifactId>
  <version>3.0.0</version>
  </dependency>
  <dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>javase</artifactId>
  <version>3.0.0</version>  
  </dependency>
  </dependencies>


2:直接上代码

package twm;



import java.awt.image.BufferedImage;
import java.io.File;
import java.nio.file.Path;
import java.util.Hashtable;


import javax.imageio.ImageIO;


import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
import com.google.zxing.WriterException;
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;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;


public class TwmTest {
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) {
//生成
try {
String  content="sea.xu";
int width=100;
int height=100;
String format="png";
Hashtable hints=new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
hints.put(EncodeHintType.MARGIN, 2);

BitMatrix bitMatrix=new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height,hints);
Path file=new File("E:/new.png").toPath();
MatrixToImageWriter.writeToPath(bitMatrix, format, file);
//解析
MultiFormatReader formatReader=new MultiFormatReader();
File file1 =new File("E:/new.png");
BufferedImage image=ImageIO.read(file1);


BinaryBitmap binaryBitmap =new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
Hashtable hintt=new Hashtable();
hintt.put(EncodeHintType.CHARACTER_SET, "utf-8");
Result result=formatReader.decode(binaryBitmap,hints);
System.err.println("解析结果:"+result.toString());
System.out.println(result.getBarcodeFormat());
System.out.println(result.getText());
} catch (Exception e) {
e.printStackTrace();
}



}


}
0 0
原创粉丝点击