import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
public class QrCodeVO {
public void generateQRCodeImage(String text, int width, int height, String filePath) throws WriterException, IOException {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
Path path = FileSystems.getDefault().getPath(filePath);
MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path);
}
}
来到调用接口的方法controller,把逻辑直接写这了 懒得去搞了
import com.chuxou.superadmin.vo.QrCodeVO;
import com.google.zxing.WriterException;
import lombok.extern.log4j.Log4j2;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
@Log4j2
@RestController
@RequestMapping("/qrCode")
public class QrCodeController {
/**
* 生成二维码
*/
@RequestMapping("/generateQrCode")
@ResponseBody
public void generateQRCodeImage(Integer id) {
QrCodeVO qrCodeVO = new QrCodeVO();
String strId = Integer.toString(id);//二维码携带id是需要string类型的哦
//到时候再把string类型id转成整形就好了
try {
qrCodeVO.generateQRCodeImage(strId, 350, 350, "D:\\二维码图片\\MyQRCode"+id+".png");//这里是生成之后存放本地的地址
} catch (WriterException e) {
System.out.println("Could not generate QR Code, WriterException :: " + e.getMessage());
} catch (IOException e) {
System.out.println("Could not generate QR Code, IOException :: " + e.getMessage());
}
}
}

本文介绍如何在Java环境中生成包含参数的二维码。通过控制器方法实现二维码的生成逻辑,简化了传统步骤。
1万+

被折叠的 条评论
为什么被折叠?



