Java生成二维码
相关JAR包:https://files.cnblogs.com/files/LiLiliang/zxing.zip
实例代码:
1 /** 2 * GET方法测试 3 * @author:lll 4 * @throws IOException 5 * @throws FileNotFoundException 6 * @time:2017年7月20日下午1:53:30 7 */ 8 @SuppressWarnings("deprecation") 9 @RequestMapping(value = "/getTest", method = RequestMethod.GET) 10 public String getTest(HttpServletRequest request, Model model) 11 throws FileNotFoundException, IOException { 12 String str = "天王盖地虎.宝塔镇妖河";// 二维码内容 13 String path = "E:\\files\\hhs3.png"; // 保存图片位置 14 String xo = Thread.currentThread().getContextClassLoader().getResource("/").getPath() + "/img/" 15 + "hhs3.png"; // 获取图片路径 16 BitMatrix byteMatrix = null; 17 String imgPath = "E:\\files\\hhs3.png"; 18 @SuppressWarnings("unused") 19 BufferedImage image = ImageIO.read(new FileInputStream(imgPath)); 20 try { 21 Hashtable<EncodeHintType, Integer> hints = new Hashtable<EncodeHintType, Integer>(); 22 hints.put(EncodeHintType.MARGIN, 1); // 设置二维码空白边框的大小 1-4,1是最小 4 是默认的国标 23 24 // 生成二维码 25 byteMatrix = new MultiFormatWriter().encode(new String(str.getBytes("UTF-8"), "iso-8859-1"), 26 BarcodeFormat.QR_CODE, 200, 200, hints); 27 28 File file = new File(path); 29 OutputStream stream = new OutputStream() { 30 31 @Override 32 public void write(int b) throws IOException { 33 } 34 }; 35 MatrixToImageWriter.writeToFile(byteMatrix, "png", file); 36 MatrixToImageWriter.writeToStream(byteMatrix, "png", stream); // 将对应的二维码写入图片流 37 BufferedImage img = MatrixToImageWriter.toBufferedImage(byteMatrix); 38 HttpServletResponse resp = response; 39 ImageIO.write(img, "jpeg", resp.getOutputStream()); // 输出图片 40 @SuppressWarnings("unused") 41 String head = 42 "<!doctype html><html lang=\"en\"> <head><meta charset=\"UTF-8\"><meta name=\"Generator\" content=\"EditPlus®\"><meta name=\"Author\" content=\"\"><meta name=\"Keywords\" content=\"\"><meta name=\"Description\" content=\"\"><title>Document</title></head><body><img src="; 43 @SuppressWarnings("unused") 44 String end = xo + "/></body></html>"; 45 46 } catch (Exception e) { 47 e.printStackTrace(); 48 } 49 return null; 50 }