精华内容
下载资源
问答
  • java根据条件生成对应的二维码 1、工具类 public class QRCodeUtils ... * 生成二维码 * @param content 二维码的内容 * @return BitMatrix对象 * */ public static BitMatrix createCode(String content) throw...
    java根据条件生成对应的二维码

    1、工具类

    public class QRCodeUtils {
     
        /**
         *  生成二维码
         * @param content 二维码的内容
         * @return BitMatrix对象
         * */
        public static BitMatrix createCode(String content) throws IOException {
            //二维码的宽高
            int width = 200;
            int height = 200;
     
            //其他参数,如字符集编码
            Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>();
            hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
            //容错级别为H
            hints.put(EncodeHintType.ERROR_CORRECTION , ErrorCorrectionLevel.H);
            //白边的宽度,可取0~4
            hints.put(EncodeHintType.MARGIN , 0);
     
            BitMatrix bitMatrix = null;
            try {
                //生成矩阵,因为我的业务场景传来的是编码之后的URL,所以先解码
                bitMatrix = new MultiFormatWriter().encode(content,
                        BarcodeFormat.QR_CODE, width, height, hints);
     
                //bitMatrix = deleteWhite(bitMatrix);
            } catch (WriterException e) {
                e.printStackTrace();
            }
     
            return bitMatrix;
        }
    }
    

    2、控制器:接受请求,返回二维码

    public void getCode(int type , HttpServletResponse response) throws IOException {
            // 设置响应流信息
            response.setContentType("image/jpg");
            response.setHeader("Pragma", "no-cache");
            response.setHeader("Cache-Control", "no-cache");
            response.setDateHeader("Expires", 0);
     
            OutputStream stream = response.getOutputStream();
     
            //type是1,生成活动详情、报名的二维码,type是2,生成活动签到的二维码
            String content = (type == 1 ? "http://www.baidu.com" : "http://www.jd.com");
            //获取一个二维码图片
            BitMatrix bitMatrix = QRCodeUtils.createCode(content);
            //以流的形式输出到前端
            MatrixToImageWriter.writeToStream(bitMatrix , "jpg" , stream);
      }
    

    已亲测,可用,希望可以帮助各位

    展开全文
  • java生成二维码
  • java-根据url生成二维码

    千次阅读 2019-07-02 17:09:07
    1. 生成无白边的二维码: 1.1 需要引入的jar包: <!-- qr_code start --> <dependency> <groupId>net.glxn.qrgen</groupId> <artifactId>javase</artif...

    1. 生成无白边的二维码:

    1.1 需要引入的jar包:

            <!-- qr_code start -->
            <dependency>
                <groupId>net.glxn.qrgen</groupId>
                <artifactId>javase</artifactId>
                <version>2.0</version>
            </dependency>
            <!-- qr_code end -->

    1.2 工具类

    package com.yifenqi.zulin.biz.agent.utils;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.imageio.ImageIO;
    
    import com.alibaba.fastjson.JSON;
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.QRCodeWriter;
    
    import lombok.extern.slf4j.Slf4j;
    import net.glxn.qrgen.javase.QRCode;
    
    /**
     * 二维码 工具类
     *
     * @author zhangshiwei
     * @since 2019年7月1日 下午7:30:47
     */
    @Slf4j
    public class QrCodeUtils {
        /**
         * 生成不带白边的二维码
         *
         * @param content 二维码内容(目标url)
         * @param qrCodePath 生成的二维码地址(最终保存地址)
         * @throws Exception 异常
         */
        public static void generatorQrCode(String content, String qrCodePath) throws Exception {
            Map<EncodeHintType, Object> hints = new HashMap<>();
    
            hints.put(EncodeHintType.MARGIN, 0);
            BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, 256, 256, hints);
    
            // 去白边
            int[] rec = bitMatrix.getEnclosingRectangle();
            int resWidth = rec[2] + 1;
            int resHeight = rec[3] + 1;
            BitMatrix resMatrix = new BitMatrix(resWidth, resHeight);
            resMatrix.clear();
            for (int i = 0; i < resWidth; i++) {
                for (int j = 0; j < resHeight; j++) {
                    if (bitMatrix.get(i + rec[0], j + rec[1])) {
                        resMatrix.set(i, j);
                    }
                }
            }
    
            int width = resMatrix.getWidth();
            int height = resMatrix.getHeight();
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
            for (int x = 0; x < width; x++) {
                for (int y = 0; y < height; y++) {
                    if (resMatrix.get(x, y)) {
                        //                    image.setRGB(x, y, Color.BLACK.getRGB());
                        image.setRGB(x, y, -16777216);
                    } else {
                        //                    image.setRGB(x, y, Color.WHITE.getRGB());
                        image.setRGB(x, y, -1);
                    }
                }
            }
            ImageIO.write(image, "png", new File(qrCodePath));
        } 
    }
    

    1.3 测试:

    @Test
        public void genInviteQrCode3() {
            String qrCodePath = "www.baidu.com";
            String qrCodeLocalPath = "/data1/admin/temp/百度首页22.png";
            try {
                // 生成不带白边的二维码
                QrCodeUtils.generatorQrCode(qrCodePath, qrCodeLocalPath); 
            } catch (Exception e) {
                log.info("error :{}", JSON.toJSON(e));
            }
        }

    1.4 测试结果:

    2. 生成有边框的普通二维码:

    2.1 工具类

    package com.yifenqi.zulin.biz.agent.utils;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.imageio.ImageIO;
    
    import com.alibaba.fastjson.JSON;
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.common.BitMatrix;
    import com.google.zxing.qrcode.QRCodeWriter;
    
    import lombok.extern.slf4j.Slf4j;
    import net.glxn.qrgen.javase.QRCode;
    
    /**
     * 二维码 工具类
     *
     * @author zhangshiwei
     * @since 2019年7月1日 下午7:30:47
     */
    @Slf4j
    public class QrCodeUtils { 
    
        /**
         * 生成带有边框的二维码
         *
         * @param targetUrl 目标url
         * @param qrCodeLocalPath 生成的二维码地址
         */
        public static void generatorQrCodeWithWhiteFrame(String targetUrl, String qrCodeLocalPath) {
            try {
                // 读取目标文件
                FileInputStream fileInputStream = new FileInputStream(QRCode.from(targetUrl).file());
                // 写入新文件
                FileOutputStream fileOutputStream = new FileOutputStream(new File(qrCodeLocalPath));
                int in = fileInputStream.read();
                while (in != -1) {
                    fileOutputStream.write(in);
                    in = fileInputStream.read();
                }
                fileInputStream.close();
                fileOutputStream.close();
            } catch (Exception e) {
                log.info("error :{}", JSON.toJSON(e));
            }
        }
    }
    

    2.2 测试

        @Test
        public void genInviteQrCode3() {
            String qrCodePath = "www.baidu.com";
            String qrCodeLocalPath = "/data1/admin/temp/百度首页22.png";
            try { 
                // 生成带白边的二维码
                QrCodeUtils.generatorQrCodeWithWhiteFrame(qrCodePath, qrCodeLocalPath);
            } catch (Exception e) {
                log.info("error :{}", e);
            }
        }

    2.3 测试结果:

    大小尺寸都是可以修改的,也可以作为参数传入util中;

    我这里之所以生成无白边的二维码,是因为前端把二维码放在另外一个圆形框图中了,为了填满接触圆边才做的,一般情况下不用;

    展开全文
  • demo中含有jar包对应的maven地址,直接引入到pom中就可以使用了
  • 1.生成二维码 //生成二维码 @RequestMapping("/genTDC") public ModelAndView genTDC(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setDateHeader("Expires", 0); ...

    1.生成二维码

    //生成二维码
    	@RequestMapping("/genTDC")
    	public ModelAndView genTDC(HttpServletRequest request, HttpServletResponse response) throws Exception {
    		response.setDateHeader("Expires", 0);
    		// Set standard HTTP/1.1 no-cache headers.
    		response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    		// Set IE extended HTTP/1.1 no-cache headers (use addHeader).
    		response.addHeader("Cache-Control", "post-check=0, pre-check=0");
    		// Set standard HTTP/1.0 no-cache header.
    		response.setHeader("Pragma", "no-cache");
    		// return a jpeg
    		response.setContentType("image/jpeg");
    		// create the text for the image
    		String schema = request.getScheme();
    		String servername = request.getServerName();
    		InetAddress ip2 = InetAddress.getLocalHost();
    		String localip = ip2.toString().substring(ip2.toString().indexOf("/") + 1);
    		String path = request.getContextPath();
    		int serverPort = request.getServerPort();
    		// 根据wjid获取当前问卷时间以确定二维码有效期
    		int sfyx = jspjService.queryewmyxq(wjid);//这个是判断二维码的条件 如果成立就能访问二维码 如果不成立就不能
    		String capText1 = "二维码已失效";
    		if (sfyx > 0) {
    			// 获取ip
    			// 根据URL获取当前项目二维码扫描到的地址 
    			//这是本地的路径 http://ip:端口号/项目名/controller/方法
    			//capText1 = schema + "://" + localip + ":" + serverPort + path + "/jspjj/toSweepCode.do“;
    			//capText1 =”https://www.baidu.com/“;
    		}
    		ServletOutputStream out;
    		try {
    			out = response.getOutputStream();
    			TwoDimensionCode.encoderQRCode(capText1, out, "jpg", 15);
    		} catch (IOException e) {
    			e.printStackTrace();
    		};
    		return null;
    	}
    

    直接访问这个路径就可以生成一张图片

    2.生成并保存二维码

     //保存二维码到本地
    	@RequestMapping("/saveImageDt")
    	public ModelAndView saveImageDt(HttpServletRequest request, HttpServletResponse response)throws Exception {
    		response.setDateHeader("Expires", 0);
    		response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    		response.addHeader("Cache-Control", "post-check=0, pre-check=0");
    		response.setHeader("Pragma", "no-cache");
    		response.setContentType("image/jpeg");
    
    		String schema = request.getScheme();
    		String servername = request.getServerName();
    		InetAddress ip2 = InetAddress.getLocalHost();
    		String localip = ip2.toString().substring(ip2.toString().indexOf("/") + 1);
    		String path = request.getContextPath();
    		int serverPort = request.getServerPort();
    			// 根据URL获取当前项目二维码扫描到的地址
    			capText1 = ”“;
    		response.addHeader("Content-Disposition", "attachment;filename=smdt.jpg");
    		response.setContentType("image/jpeg");//保存的路径
    		try {
    			request.setCharacterEncoding("UTF-8");
    		} catch (UnsupportedEncodingException e1) {
    			e1.printStackTrace();
    		}
    		ByteArrayOutputStream os = new ByteArrayOutputStream();
    		try {
    			TwoDimensionCode.encoderQRCode(capText1, os, "jpg", 15);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		InputStream is = null;
    		OutputStream out = null;
    		try {
    			is = new ByteArrayInputStream(os.toByteArray());
    			out = response.getOutputStream();
    			byte[] b = new byte[1024];
    			int i = 0;
    			while ((i = is.read(b)) > 0) {
    				out.write(b, 0, i);
    			}
    			out.flush();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (is != null) {
    				try {
    					is.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    			is = null;
    			if (out != null) {
    				try {
    					out.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    			out = null;
    		}
    		return null;
    	}
    
    展开全文
  •  *根据固定路径生成二维码  * @author hxw  *  * / public class WXEWCodeUtil {  public static void main(String [] args){  //固定路径  String url =“http://www.baidu.com “;  //二维码存放...

    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.common.BitMatrix;
     
    import javax.imageio.ImageIO;
    import javax.swing.filechooser.FileSystemView;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.util.HashMap;
    import java.util.Map;
     / **
      *根据固定路径生成二维码
      * @author hxw
      *
      * /
    public class WXEWCodeUtil {
        public static void main(String [] args){
            //固定路径
            String url =“http://www.baidu.com “;
            //二维码存放路径
            String path = FileSystemView.getFileSystemView()。getHomeDirectory()+ File.separator +“testQrcode”;
            String fileName =“temp.jpg”;
            createQrCode(url,path,fileName);
        }
     
        公共静态字符串createQrCode(字符串URL,字符串路径,字符串文件名){
            尝试{
                地图<EncodeHintType,字符串>提示=新的HashMap <>();
                hints.put(EncodeHintType.CHARACTER_SET,“UTF-8”);

               //二维码大小
                BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 400, 400, hints);
                File file = new File(path, fileName);
                if (file.exists() || ((file.getParentFile().exists() || file.getParentFile().mkdirs()) && file.createNewFile())) {
                    writeToFile(bitMatrix, "jpg", file);
                    System.out.println("搞定:" + file);
                }
     
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
     
        static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {
            BufferedImage image = toBufferedImage(matrix);
            if (!ImageIO.write(image, format, file)) {
                throw new IOException("Could not write an image of format " + format + " to " + file);
            }
        }
     
        static void writeToStream(BitMatrix matrix, String format, OutputStream stream) throws IOException {
            BufferedImage image = toBufferedImage(matrix);
            if (!ImageIO.write(image, format, stream)) {
                throw new IOException("Could not write an image of format " + format);
            }
        }
     
        private static final int BLACK = 0xFF000000;
        private static final int WHITE = 0xFFFFFFFF;
     
        private static BufferedImage toBufferedImage(BitMatrix matrix) {
            int width = matrix.getWidth();
            int height = matrix.getHeight();
            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,matrix.get(x,y)?BLACK:WHITE);
                }
            }
            返回的图像;
        }
    }
     

    展开全文
  • java实现二维码生成与解析

    万次阅读 多人点赞 2018-09-23 01:35:17
    之前在做一个小项目的时候,用到了二维码技术,我同学看到我的项目后就问我怎么做到的,我一时半会也说不清,于是就想写一篇文章简单介绍一下二维码技术,下次再有同学问到,我就直接给他看我的博客就好了,哈哈。...
  • java根据跳转链接生成二维码

    千次阅读 2019-05-28 11:27:05
    //配置生成路径 String path = "d:测试二维码/photo/"; //生成文件名称 String fileName = "二维码.png"; createQrCode(url, path, fileName); } public static String createQrCode(String url, String ...
  • Java实现二维码生成 Google-Zxing

    万次阅读 多人点赞 2019-01-08 00:12:40
    本篇文章将介绍java中如何生成二维码,二维码的展示主要包括两各方面:1.直接生成图片(直接生成图片不需要web程序,maven工程即可) 2.将二维码转为字节数组,然后在web页面显示。web项目的目录结构以前面的一篇...
  • Java生成二维码

    2018-05-05 08:19:27
    Java生成二维码一.二维码简介二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符合信息的图形。 二、QR Code 三、实例讲解1.JSP生成二维码方法(1)借助第三方jar,如...
  • java 根据链接地址生成二维码

    千次阅读 2018-12-21 14:12:58
    2.工具类:ZxingUtils.java package com.mdq.dctree.util; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter;...
  • java生成二维码扫描跳转到指定的路径URL 导入依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.1.0</version> &...
  • // 生成二维码 文件地址 是否存在不存在则新增 File outputFile = new File(path); if(!outputFile.getParentFile().exists()){ outputFile.getParentFile().mkdirs(); } if(!outputFile.exists()){ output...
  • java生成二维码保存本地路径 导入依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </...
  • 第二步,书写生成二维码的工具类 import com.google.zxing.*; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.common.BitMatrix; import ...
  • Java 快速实现二维码图片项目路径生成和文件压缩下载。Zxing工具类在这个小demo中基本用不到,需要做复杂的二维码还是可以的,如二维码嵌入Logo图片等。 目录 Zxing二维码生成工具 服务器快速二维码图片管理 ...
  • java二维码生成工具

    千次阅读 2019-04-26 15:06:08
    java二维码生成工具 1.导入jar包,我是用的是一个谷歌提供的 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</...
  • 开源)Java生成二维码分享海报

    千次阅读 多人点赞 2019-05-05 07:24:38
    这一篇文章我们就用 Java生成一下仿金山词霸的海报。
  • Java二维码生成代码

    千次阅读 2018-12-04 10:23:37
    /** * 根据内容生成二维码数据 * @param content 二维码文字内容[为了信息安全性,一般都要先进行数据加密] * @param width 二维码照片宽度 * @param height 二维码照片高度 * @return */ public ...
  • JAVA 实现二维码生成

    2020-05-19 20:40:28
    // 二维码尺寸 private static final int QRCODE_SIZE = 300; // LOGO宽度 private static final int WIDTH = 60; // LOGO高度 private static final int HEIGHT = 60; private static BufferedImage createImage...
  • Java利用url生成二维码

    2020-09-09 16:21:02
    一、二维码生成工具类,输入为扫描二维码跳转的url,输出是转化后的二维码图片 1.导入依赖包: <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> ...
  • JAVA生成二维码链接

    千次阅读 2019-09-13 11:58:21
    本人对一些没用过的技术一般都比较好奇,项目上用到了二维码扫描跳转链接,项目后自己百度搜索研究,总结了一下,生成二维码后跳转链接的一些知识。 1、需要用到的maven依赖 <!-- ...
  • 最近项目有一个按照床位生成二维码图片返回给前端导出的需求,经过我的一番努力,在借鉴网上资料的同时修改完善出了自己的一套方便实用的生成方式。 写博客的目的有两个: 1、作为笔记以后自己方便使用。 2、分享给...
  • 原来Java生成二维码这么简单

    千次阅读 2020-09-21 13:34:54
    一、二维条码/二维码(2-dimensional bar code)的概念 ...矩阵式二维码: 在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码(在矩阵相应元素位置上,用点的出现表示二进制“1”,点的不出现表示二进制的“0
  • java 生成二维码 QRCode、zxing 两种方式 所需要的 jar 包下载地址:java生成二维码所需要的QRCode、zxing Jar包 如果你的是Maven工程,添加依赖包的方式请参考:将 jar 包加入到 Maven 库 如果是普通Java工程,...
  • Java 微信当面付生成二维码支付实现

    千次阅读 2020-07-31 10:12:00
    Java 微信当面付生成二维码支付实现1. maven依赖2. 准备工作a. WxPayConfig 配置类b. 二维码图片本地存储位置c. 配置虚拟路径3. 代码a. QrCodeUtilb. controller 1. maven依赖 <!-- 微信支付sdk --> <...
  • 下面我来分享两种生成二维码图片的方法。 第一种,填入你扫描二维码要跳转的网址直接生成二维码 第一步:导入相关的包 1 <dependency> 2 <groupId>com.google.zxing</groupId> 3 <...
  • maven依赖: <!-- 支付宝支付sdk --> <dependency> <groupId>com.alipay.sdk</groupId>...alipay-sdk-java</artifactId> <version>4.9.124.ALL</version> .
  • 生成二维码java文件

    2018-09-16 15:43:12
    设置二维码的宽高,网页跳转的路径,保存图片的地址,自动生成二维码图片。
  • Java后端生成二维码

    千次阅读 2019-06-01 17:16:11
    Java后端生成二维码 pom.xml文件需要添加依赖jar包: <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.1</version&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,707
精华内容 3,882
关键字:

java根据不同路径生成不同二维码

java 订阅