使用 zxing生成二维码

来源:互联网 发布:软件开发报价模板 编辑:程序博客网 时间:2024/05/16 04:56

生成二维码

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.csdn.net/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());}}
生成的二维码如下:


原创粉丝点击