使用Java代码制作二维码(超级简单)

操作步骤

真的是灰常简单,导入三个jar包,十几行代码就搞定了。
源代码和jar包已经打包放在阿里云盘里面,文末有链接

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

/**
 * @author: 邹祥发
 * @date: 2022/8/20 16:29
 * 制作二维码
 */
public class Code {
    public boolean CreateCode(String content, String path) throws Exception {
        int width = 300;
        int height = 300;
        String format = "jpg";
        Map<EncodeHintType, Object> map = new HashMap<>();
        map.put(EncodeHintType.CHARACTER_SET, "utf-8");
        //容错率等级L>M>Q>H,等级越高,所需要的扫描时间越长,但是准确率越高
        map.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        map.put(EncodeHintType.MARGIN, 2);
        BitMatrix encode = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, map);
        Path path1 = FileSystems.getDefault().getPath(path);
        MatrixToImageWriter.writeToPath(encode, format, path1);
        return true;
    }

    public static void main(String[] args) throws Exception {
        //创建一个不会重复的UUID
        String uuid = UUID.randomUUID().toString();
        //去掉 - 并截取前8位
        String name = uuid.replace("-", "").substring(0, 8);
        //二维码存放的路径
        String path = "D:\\code\\" + name + ".jpg";
        //使用反射代替new关键字
        Class<?> code = Class.forName("Code");
        Code o = (Code) code.getDeclaredConstructor().newInstance();
        boolean b = o.CreateCode("https://www.hqxiaozou.top", path);
        if (b) {
            System.out.println("二维码创建成功!");
            System.out.println(path);
        } else {
            System.out.println("失败!");
        }
    }
}

注意:需要修改 boolean b = new Code().CreateCode("https://www.hqxiaozou.top", path);
中的代码,第一个参数改成你需要跳转的网页,或者写一段文字也可以。后面一个参数是二维码生成后保存的路径。

相关资料

jar包链接https://www.aliyundrive.com/s/fMDeMzXTFj2

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下代码来实现在Java微服务中生成二维码: ```java import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; 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 QRCodeGenerator { public static void generateQRCode(String text, int width, int height, String filePath) { Map<EncodeHintType, Object> hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); // 设置字符集编码为UTF-8 try { BitMatrix bitMatrix = new QRCodeWriter().encode(text, BarcodeFormat.QR_CODE, width, height, hints); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { image.setRGB(x, y, bitMatrix.get(x, y) ? Color.BLACK.getRGB() : Color.WHITE.getRGB()); } } ImageIO.write(image, "png", new File(filePath)); System.out.println("二维码已生成!"); } catch (WriterException | IOException e) { e.printStackTrace(); } } public static void main(String[] args) { String text = "Hello, World!"; // 二维码内容 int width = 300; // 二维码图片宽度 int height = 300; // 二维码图片高度 String filePath = "qrcode.png"; // 生成的二维码图片保存路径 generateQRCode(text, width, height, filePath); } } ``` 这段代码定义了一个`QRCodeGenerator`类,其中的`generateQRCode`方法接受文本内容、宽度、高度和文件路径作为参数,在指定路径生成对应内容的二维码图片。 在`main`方法中,我们使用了一个示例文本"Hello, World!",并指定了宽度和高度为300,将生成的二维码保存为`qrcode.png`文件。 你可以根据自己的需求修改这段代码,例如从微服务接收文本内容并动态生成对应的二维码。记得在使用之前,确保已经引入了ZXing库的依赖。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值