zoukankan      html  css  js  c++  java
  • java实现二维码

    二维码的概念:
    是某种特定的几何图形按一定规律在平面分布的黑白相间的图形记录数据符号信息的图形。
     
    二维码的发展历史:
    从一维码原生过来,一维码是有一组粗细不同,黑白相间的的条,及相应的字符组成的标记,即传统码。
    二维码是某种特定的几何图形按一定规律在平面分布的黑白相间的图形记录数据符号信息的图形
    二维码存储数据更广泛。
     
    二维码的优缺点:
    高密度编码,信息容量大;编码范围广;容错能力强;译码可靠性高;可引入加密措施;成本低,易制作,持久耐用。
    二维码成为手机病毒,钓鱼网站传播的新渠道。使信息泄露。优点大于缺点。
     
    流行的三大国际标准:
    PDF417:不支持中文
    DN:专利为公开。需付费使用。
    QR code : 专利公开,支持中文。具有识别快,占用空间小,由日本公司开发。
    QR code纠错能力:
    L:可纠错%7数据码字
    M:可纠错%15数据码字
    Q:可纠错%25数据码字
    H:可纠错%30数据码字
     
    通过zxing和QRCode第三方jar报包开发和jquery
     
    使用zxing开发代码:
    int width = 300;// 宽
    int height = 300;// 高
    String format = "png";// 图片格式
    String content = "https://www.imooc.com";// 内容
     
    // 定义二维码的参数
    HashMap map = new HashMap();
    map.put(EncodeHintType.CHARACTER_SET, "utf-8");// 字符集,编码格式
    map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);// 纠错等级
     
    // 写入定义的参数
    BitMatrix bit = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, map);
     
    // 生成二维码本地路径
    Path file = new File("E:/code/img.png").toPath();
    MatrixToImageWriter.writeToPath(bit, format, file);
     
    使用zxing解析二维码数据:
    // 读取
    MultiFormatReader mt = new MultiFormatReader();
    // 本地路径
    File file = new File("E:/code/img.png");
     
    // 读取图片
    BufferedImage image = ImageIO.read(file);
    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
    HashMap map = new HashMap();
    map.put(EncodeHintType.CHARACTER_SET, "utf-8");// 字符集,编码格式
    Result result = mt.decode(bitmap, map);
    System.out.println(result);
     
  • 相关阅读:
    PythonStudy——greenlet 协程
    PythonStudy——事件 Event
    PythonStudy——单线程并发的实现
    2015年的总结
    kylin一种OLAP的实现
    分布式消息队列的使用kakfa
    第一次听到了docker
    Hive分布式的数据仓库
    dubbo服务框架学习
    Storm实时计算框架的编程模式
  • 原文地址:https://www.cnblogs.com/haha66/p/9361013.html
Copyright © 2011-2022 走看看