Java生成二维码

  1. 二维码的分类
    1. 线性堆叠式二维码
    2. 矩阵式二维码
    3. 邮政码
  2. 二维码的优点
    1.高密度编码,信息容量大,可以容纳1850个大写字母,或者2710个数字,或者1108个字节,或者500多个汉字
    1. 编码范围广:把可以数字化的信息都可以进行编码
    2. 容错能力强
    3. 译码可靠性高,误码率不超过千万分之一
    4. 可引入加密措施
    5. 成本低,容易制作,耐用
  3. 二维码的缺点
    1. 成为病毒传播的新渠道
    2. 信息泄露
  4. QR Code
    1. 目前流行的三大标准
      ①PDF417:不支持中文
      ②DM:专利未公开,需要支付专利费用
      ③QR Code: 专利公开,支持中文
    2. jsp生成二维码方法
      1. 借助第三方,zxing和qrcode.jar
      2. js,如jQuery.qrcode.js
    3. zxing方式生成二维码
      1. 网址:https://github.com/zxing/zxing/releases
      2. 核心文件包有两个
        这里写图片描述
    4. 将包里的核心包放在一个工程里,打成一个jar包,以供我们以后的开发使用
package com.fgy.zxing;

import java.io.File;
import java.nio.file.Path;
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 CreateQRCode {

    public static void main(String[] args) {
        int width = 300;
        int height = 300;
        String imageFormt = "png";
        String content = "www.baidu.com";

        //定义一个二维码的参数
        HashMap hints = new HashMap<>();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        hints.put(EncodeHintType.MARGIN, 2);
        /**
         * contents:
         * format:二维码是那种格式的
         */
        try {
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
            //生成二维码
            Path file = new File("F:/code/img.png").toPath();
            MatrixToImageWriter.writeToPath(bitMatrix, imageFormt, file);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值