package {{basePackage}}.utils.qrcode;

import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;

import java.awt.*;
import java.io.File;

/**
 * dcrenl: 2023-09-07 16:58:7
 * 二维码操作
 */
public class QrCodeUtils {

    /**
     * dcrenl: 2023-09-07 17:26:1
     * 生成二维码
     * @param width    宽度
     * @param height   高度
     * @param content  内容
     * @param filePath 生成文件路径
     * @return
     */
    public static File createQr(int width, int height, String content, String filePath) {

        QrConfig config = new QrConfig(width, height);
        // 设置边距，既二维码和背景之间的边距
        config.setMargin(3);
        // 设置前景色，既二维码颜色（青色）
        config.setForeColor(Color.BLACK.getRGB());
        // 设置背景色（灰色）
        config.setBackColor(Color.WHITE.getRGB());

        // 生成二维码到文件，也可以到流
        return QrCodeUtil.generate(content, config, FileUtil.file(filePath));

    }

    /**
     * dcrenl: 2023-09-07 17:28:55
     * 识别二维码
     * @param file 二维码文件
     * @return
     */
    public static String decode(File file) {

        return QrCodeUtil.decode(file);
    }

}
