资源简介

java 使用zxing生成二维码(带logo和文字说明)已经封装 使用起来很方便 下载下来直接调用传入参数就可以

资源截图

代码片段和文件信息

package com.pindus.justiceplatformweb.common.publicFunction.utils;
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 java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.objects;
import javax.imageio.ImageIO;
/**
 * @author: miaoqixin
 * @create: 2019-01-16 14:14
 * Maven 方式导入jar
 *           
 *             com.google.zxing
 *             core
 *             3.3.3
 *         

 * Gradle 方式
 *             compile group: ‘com.google.zxing‘ name: ‘core‘ version: ‘3.3.3‘
 **/
public class ZXingCode {

    //参数可设置到yml文件中
    private static final int QRCOLOR = 0xFF000000; // 默认是黑色
    private static final int BGWHITE = 0xFFFFFFFF; // 背景颜色
    private static final int WIDTH = 400; // 二维码宽
    private static final int HEIGHT = 400; // 二维码高

    // 用于设置QR二维码参数
    private static Mapject> hints = new HashMapject>() {
        private static final long serialVersionUID = 1L;
        {
            put(EncodeHintType.ERROR_CORRECTION ErrorCorrectionLevel.H); // 设置QR二维码的纠错级别(H为最高级别)具体级别信息
            put(EncodeHintType.CHARACTER_SET “utf-8“); // 设置编码方式
            put(EncodeHintType.MARGIN 0);
        }
    };


    /**
     * @author miaoqixin
     * Springboot 使用zxing生成二维码(带logo和文字说明的)
     * ExportExcel.exportExcel(titlerowNamedataList“POI导出“response);
     * @param logoFile      logo图片文件
     * @param codeFileUrl   二维码储存地址
     * @param qrUrl         二维码内容
     * @param note          二维码说明
     * @throws ZXingCode
     */
    public static void drawLogoQRCode(File logoFile File codeFileUrlString qrUrl String note) throws IOException WriterException { //图片文件   二维码储存地址  网页路径   二维码说明 

        MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

        // 参数顺序分别为:编码内容,编码类型,生成图片宽度,生成图片高度,设置参数
        BitMatrix bm = multiFormatWriter.encode(qrUrl BarcodeFormat.QR_CODE
                WIDTH HEIGHT hints);
        BufferedImage image = new BufferedImage(WIDTH HEIGHT
                BufferedImage.TYPE_INT_RGB);

        // 开始利用二维码数据创建Bitmap图片,分别设为黑(0xFFFFFFFF)白(0xFF000000)两色
        for (int x = 0; x < WIDTH; x++) {
            for (int y = 0; y < HEIGHT; y++) {
                image.setRGB(x y bm.get(x y) ? QRCOLOR : BGWHITE);
            }
        }

        int width = image.getWidth();
        int height = image.getHeight();

        if (objects.nonNull(logoFile) && logoFile.exists()) {
            // 构建绘图对象
            Graphics2D g = image.createGraphics();

            // 读取Logo图片
            Buf

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7306  2019-01-16 17:16  ZXingCode.java
     文件      120717  2019-01-16 17:22  接口调用.png

评论

共有 条评论