通过java生成二维码首先下载谷歌提供的两个jar
链接:https://pan.baidu.com/s/1ZrNXHaUNnfuiADM4D4VOvQ
提取码:0hn5
然后自定义类
public class QrCodeUtil { //生成二维码图片输出流 private static final QRCodeWriter QR_CODE_WRITER = new QRCodeWriter(); /* * text -二维码内容 * format- 生成图片格式 * width height-生成二维码的宽高 * path-生成二维码的存储路径 * */ public static void generateQrCodeAndSave (String text, String format, int width, int height, String path) throws WriterException, IOException { //存储乱码问题 HashMap map=new HashMap(); map.put(EncodeHintType.CHARACTER_SET,"UTF-8"); //二维码信息对象 BitMatrix bitMatrix = QR_CODE_WRITER.encode(text, BarcodeFormat.QR_CODE, width, height,map); //将二维码转化成图片 MatrixToImageWriter.writeToPath(bitMatrix,format, Paths.get(path)); } }
其中map不是必填项,可以参考源代码。如下
使用map设置字符集,解决中文乱码问题。
//存储乱码问题
HashMap map=new HashMap(); map.put(EncodeHintType.CHARACTER_SET,"UTF-8");
//二维码信息对象
BitMatrix bitMatrix = QR_CODE_WRITER.encode(text, BarcodeFormat.QR_CODE, width, height,map);
下面是测试结果
//用于测试二维码 public class QrCodeTest { //定义图片存储地址 private static final String QR_CODE_IMAGE_PATH="D:/firefoxDownload/MyQrCode.png"; private static final String text="我错了,别问爱过,都是过去式,拜拜"; private static final String format="png"; private static final int width=300; private static final int height=300; public static void main(String[] args) throws IOException, WriterException { QrCodeUtil.generateQrCodeAndSave(text,format,width,height,QR_CODE_IMAGE_PATH); } }