生成二维码
package com.lin.qrcode;
import java.io.File;
import java.io.IOException;
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 PracticeQRCode {
public static void main(String[] args) throws WriterException, IOException {
int width=300;
int height=300;
String format="png";
String contents="http://blog.youkuaiyun.com/ljh_learn_from_base";//也可以写中文
//定义二维码参数
HashMap<EncodeHintType,Object> hints=new HashMap<>();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
hints.put(EncodeHintType.MARGIN, 2);
BitMatrix bitMatrix=new MultiFormatWriter().encode(contents, BarcodeFormat.QR_CODE, width, height, hints);
File file=new File("D://QR_test."+format);
if (!file.exists()) {
file.createNewFile();
}
MatrixToImageWriter.writeToFile(bitMatrix, format,file);
}
}
package com.lin.qrcode;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
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;
public class ReadQRCode {
public static void main(String[] args) throws IOException, NotFoundException {
MultiFormatReader formatReader=new MultiFormatReader();
File file=new File("D://QR_test.png");
BufferedImage bufferedImage=ImageIO.read(file);
BinaryBitmap binaryBitmap=new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(bufferedImage)));
Map<DecodeHintType,String> hints=new HashMap<>();
hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
Result result=formatReader.decode(binaryBitmap, hints);
System.out.println("解析结果:"+result.toString());
System.out.println("二维码的格式类型:"+result.getBarcodeFormat());
System.out.println("二维码的文本内容是:"+result.getText());
}
}
生成的二维码如下: