zoukankan      html  css  js  c++  java
  • 二维码生成工具类

    package cn.it.op.test;

    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.FileSystems;
    import java.nio.file.Path;
    import java.util.HashMap;
    import java.util.Map;

    import javax.imageio.ImageIO;

    import org.junit.Test;

    import com.alibaba.fastjson.JSONObject;
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.Binarizer;
    import com.google.zxing.BinaryBitmap;
    import com.google.zxing.DecodeHintType;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.LuminanceSource;
    import com.google.zxing.MultiFormatReader;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.NotFoundException;
    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;

    public class And {

    /**
    * 生成图像
    *
    * @throws WriterException
    * @throws IOException
    */
    @Test
    public void testEncode() throws WriterException, IOException {
    String filePath = "D://";
    String fileName = "zxing.png";
    JSONObject json = new JSONObject();
    // json.put(
    // "zxing",
    // "https://github.com/zxing/zxing/tree/zxing-3.0.0/javase/src/main/java/com/google/zxing");
    // json.put("author", "水牛");
    json.put("登录", "http://www.100tk.com");
    String content = json.toJSONString();// 内容
    int width = 200; // 图像宽度
    int height = 200; // 图像高度
    String format = "png";// 图像类型
    Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
    hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
    BarcodeFormat.QR_CODE, width, height, hints);// 生成矩阵
    Path path = FileSystems.getDefault().getPath(filePath, fileName);
    MatrixToImageWriter.writeToPath(bitMatrix, format, path);// 输出图像
    System.out.println("输出成功.");
    }

    /**
    * 解析图像
    */
    @Test
    public void testDecode() {
    String filePath = "D://zxing.png";
    BufferedImage image;
    try {
    image = ImageIO.read(new File(filePath));
    LuminanceSource source = new BufferedImageLuminanceSource(image);
    Binarizer binarizer = new HybridBinarizer(source);
    BinaryBitmap binaryBitmap = new BinaryBitmap(binarizer);
    Map<DecodeHintType, Object> hints = new HashMap<DecodeHintType, Object>();
    hints.put(DecodeHintType.CHARACTER_SET, "UTF-8");
    Result result = new MultiFormatReader().decode(binaryBitmap, hints);// 对图像进行解码
    JSONObject content = JSONObject.parseObject(result.getText());
    System.out.println("图片中内容: ");
    System.out.println("author: " + content.getString("author"));
    System.out.println("zxing: " + content.getString("zxing"));
    System.out.println("图片中格式: ");
    System.out.println("encode: " + result.getBarcodeFormat());
    } catch (IOException e) {
    e.printStackTrace();
    } catch (NotFoundException e) {
    e.printStackTrace();
    }
    }
    }

  • 相关阅读:
    Spring web Flow2学习笔记
    Spring事务:传播行为与隔离级别
    RocketMQ综述(未完成)
    zookeeper综述
    《深入剖析Tomcat》读书笔记(二)
    《深入剖析Tomcat》读书笔记(一)
    SqlServer四种排序:ROW_NUMBER()/RANK()/DENSE_RANK()/ntile() over()
    【转】sqlserver字符串拆分(split)方法汇总
    《Java开发实战经典》读书笔记
    Sql Server 锁 排它锁 更新锁 共享锁
  • 原文地址:https://www.cnblogs.com/swite/p/5187604.html
Copyright © 2011-2022 走看看