zoukankan      html  css  js  c++  java
  • java生成二维码图片

    1、POM文件引入

            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>core</artifactId>
                <version>3.2.0</version>
            </dependency>
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>javase</artifactId>
                <version>3.2.0</version>
            </dependency>

    2、java代码编写,servlet或spring mvc 的Controller

    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.EncodeHintType;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.WriterException;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.net.URLEncoder;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * Created by user1 on 2015/8/12.
     */
    @Controller
    @RequestMapping(value = "/qrcode", produces = "application/json; charset=UTF-8")
    public class QRCodeController {
    
        private static Logger logger = LoggerFactory.getLogger(QRCodeController.class);
    
    
        /**
         * 生成验证码图片
         * @param response
         * @throws java.io.IOException
         */
        @RequestMapping(value = "/qrcode", produces = "image/png")
        public void createQRCode(
                @RequestParam(value = "type")String type,
                HttpServletRequest request, HttpServletResponse response) throws IOException {
    
            //生成需要分享的二维码,也可以根据此参数生成其他的二维码,只要增加更多else if
            if ("test".equalsIgnoreCase(type)){
    
                //生成二维码图片的内容
                String qrCodeContent = "http://www.coolpeng.cn";
    
                //生成二维码图片
                encodeQRCode(response, qrCodeContent);
    
                logger.debug("qrCodeContent  {}", qrCodeContent);
            }
    
        }
    
    
    
    
    
        /**
         * 生成二维码图片并作为输出流输出到页面上
         * @param resp
         * @param content
         * @throws IOException
         */
        private void encodeQRCode(HttpServletResponse resp,String content) throws IOException {
    
            ServletOutputStream out = resp.getOutputStream();
    
            Map<EncodeHintType, Object> hints = new HashMap<>();
            hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
    
            try {
    
                BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 300, 300, hints);
    
                //里面自己会把流close的
                MatrixToImageWriter.writeToStream(bitMatrix, "png", out);
    
            } catch (WriterException | IOException e ) {
                logger.error("",e);
            }
        }
    
    
    }
  • 相关阅读:
    学习subprocess模块...
    【排列组合】
    【约瑟夫问题】
    【craps赌博游戏】
    【洗扑克牌(乱数排列)】
    【最大访客数】
    【后序式的运算】
    【中序式转后序式】
    【python基础】之元组 集合 字典
    【费式数列(Fibonacci数列)】
  • 原文地址:https://www.cnblogs.com/lhp2012/p/5144151.html
Copyright © 2011-2022 走看看