二维码的制作Java篇

本章学习目录

一,将jar包放入IDEA的library()
  • jar包:名叫:core-3.4.0.jar
    流程

  • 阿里云盘地址链接:core-3.4.0.jar
    https://www.aliyundrive.com/s/NJK7jv6Xn6f
    提取码: qc5d

1.在项目中新建文件夹libs
2.右击add lib,即可引用jar包内的api
在这里插入图片描述

二,需要用的类和方法
  • 类:MultiFormatWriter
    流程
  • 该类下的方法:encode();
    流程
三,方法需要的五个参数
  • encode()需要5个参数(我们用5个参数的)

  • String var1, BarcodeFormat var2, int var3, int var4, Map<EncodeHintType, ?> var5

    1. String var1:表示想要扫码后显示的内容流程

    2. BarcodeFormat var2:表示告知想要画的码的类型,如一维码还是二维码流程

    3. int var3:表示二维码的宽度在这里插入图片描述

    4. int var4:表示二维码的高度流程

    5. Map<EncodeHintType, ?> var5:存放键值,用于设置二维码的展示形式流程
      流程
      流程

  • 传参得到内存流程

四,将二维码显示成图片
  • BufferedImage的含参构造:

流程
流程

五,存入指定盘符下
  • 设置文件用于存放
    流程
  • 将图片存入,返回结果
    流程
  • 判断一下即可
    在这里插入图片描述
六,代码的展示
  • 实现二维码的完整流程
package com.mystudy.amuse;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * 制作二维码
 */
public class QrCode {
    public static void main(String[] args) throws WriterException, IOException {
        //利用core-3.4.0.jar包里的一个工具类帮我们生成二维码
        //利用MultiFormatWriter下的
        //创建工具类的对象
        MultiFormatWriter multiFormatWriter=new MultiFormatWriter();
        //定义要展示的内容
        String message="这是我要展示的文字";
        //定义码的类型
        BarcodeFormat type = BarcodeFormat.QR_CODE;
        //定义宽度
        int width=500;
        //定义高度
        int height=500;
        //定义map集合,用于存放二维码的一些其他设置
        Map map=new HashMap();
        //EncodeHintType.ERROR_CORRECTION:二维码的纠错能力
        //L:Low 7%   M:Middle 15%  Q:Quartereed 25%  H:High 30%
        map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
        //设置编码,防止乱码
        map.put(EncodeHintType.CHARACTER_SET,"UTF-8");
        //设置留白
        map.put(EncodeHintType.MARGIN,2);
        //传入以上5个参数,生成内存
        BitMatrix encode = multiFormatWriter.encode(message, type, width, height, map);
        //内存===>图片对象
        //设置width,height
        // BufferedImage.TYPE_INT_BGR:表示具有8位RGB颜色分量的图像,
        // 对应于Windows或Solaris样式的BGR颜色模型,蓝色,绿色和红色颜色打包成整数像素。
        BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
        //将二维码中的有效数据展示出来
        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                //设置每个点的颜色,大概意思就是有定义设置白色,没定义设置为黑色
                image.setRGB(x,y,encode.get(x,y)? Color.WHITE.getRGB():Color.BLACK.getRGB());
            }
        }
        //将图片存入内存中
        File file=new File("D:/我的Java学习/二维码/我的二维码/第一张.png");
        //将image以png后缀写入file中
        boolean flag= ImageIO.write(image,"png",file);
        //根据flag进行判断是否操作成功
        if (flag){
            System.out.println("二维码生成成功");
        }else {
            System.out.println("二维码生成失败");
        }
    }
}

七,结果的展示
  • 进入路径下查看
    流程
  • 结果展示
    流程

流程

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值