生成带链接的二维码

原创 2016年06月01日 16:00:59

-1.新建一个工具类:

代码块

package com.hysm.tools;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import com.swetake.util.Qrcode;


public class EncoderHandler {
/**
     * 生成二维码(QRCode)图片
     * @param content
     * @param imgPath
     */
    public void encoderQRCode(String content, String imgPath) {
        try {
            Qrcode qrcodeHandler = new Qrcode();
            qrcodeHandler.setQrcodeErrorCorrect('M');
            qrcodeHandler.setQrcodeEncodeMode('B');
            qrcodeHandler.setQrcodeVersion(7);
            System.out.println(content);
            byte[] contentBytes = content.getBytes("gb2312");
            BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB);
            Graphics2D gs = bufImg.createGraphics();
            gs.setBackground(Color.WHITE);
            gs.clearRect(0, 0, 140, 140);
            // 设定图像颜色 > BLACK
            gs.setColor(Color.BLACK);
            // 设置偏移量 不设置可能导致解析出错
            int pixoff = 2;
            // 输出内容 > 二维码
            if (contentBytes.length > 0 && contentBytes.length < 240) {
                boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);
                for (int i = 0; i < codeOut.length; i++) {
                    for (int j = 0; j < codeOut.length; j++) {
                        if (codeOut[j][i]) {
                            gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);
                        }
                    }
                }
            } else {
                System.err.println("QRCode content bytes length = "
                        + contentBytes.length + " not in [ 0,120 ]. ");
            }
            gs.dispose();
            bufImg.flush();
            File imgFile = new File(imgPath);
            // 生成二维码QRCode图片
            ImageIO.write(bufImg, "png", imgFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String imgPath = "D:/Michael_QRCode.png";
        String content = "http://www.baidu.com";
        EncoderHandler handler = new EncoderHandler();
        handler.encoderQRCode(content, imgPath);
        System.out.println("encoder QRcode success");
    }
}

-2.加载页面时生成二维码:

 <img  style="height:300px;width:300px" id="img"/>  
    <script type="application/javascript" src="<%=path%>/js/jquery-1.11.0.min.js"></script>
    <script type="text/javascript">
    $(function(){
    $.ajax({
  url:'<%=basePath%>query/code.do',
  dataType:'text',
  type:'post',
  success:function(data){
  if(data!=null){
  $("#img").attr("src","<%=basePath%>code/"+data);
  }
} 
  });
    });
    </script>

-3.controller层:

@RequestMapping("/code.do")
@ResponseBody
public void code(HttpServletResponse response,HttpServletRequest request){
String savepath = request.getSession().getServletContext().getRealPath("/")+"code/";
String uuid=CommonUtil.getT_UUID();
String imgPath = savepath+uuid+".png";
        String content = "https://pay.weixin.qq.com/wiki/doc/api/wap.php?chapter=15_1#";
        EncoderHandler handler = new EncoderHandler();
        handler.encoderQRCode(content, imgPath);
        PrintWriter out=null;
        try {
out=response.getWriter();
out.print(uuid+".png");
System.out.println("imgPath:"+imgPath);
} catch (IOException e) {
e.printStackTrace();
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

ShadowSocks配置信息二维码生成说明

前言以前配置SS的信息时,都是直接将对应的信息填写完成就OK了,但是后来发现SS支持二维码扫描的方式直接自动填写配置信息,于是就研究了一下生成规则。SS的配置项说明通常在SS的目录下,会生成一个gui...
  • lecepin
  • lecepin
  • 2016年07月29日 13:15
  • 23212

java快速生成二维码带超链接(logo)

import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.I...
  • u010235074
  • u010235074
  • 2016年08月22日 15:56
  • 1376

二维码生成中间带 图片

在 jquery.qrcode.js 官网    https://larsjung.de/jquery-qrcode/ (官网链接) 下载qrcode包  获取 jquery-qrcode-0....
  • w1158384189
  • w1158384189
  • 2016年10月15日 17:54
  • 806

java生成带logo的二维码及前端显示二维码

java生成带logo的二维码及前端显示二维码
  • Lxinccode
  • Lxinccode
  • 2017年11月28日 13:38
  • 347

Android利用ZXing生成带LOGO的二维码图片

Android利用ZXing生成带LOGO的二维码图片前言: 昨天有个小伙伴问我怎么动态生成带logo的二维码,虽然我也见过带logo的二维码,但是不知道具体实现,我猜想ZXing能直接生成带log...
  • dgs960825
  • dgs960825
  • 2016年04月20日 14:58
  • 6289

iOS二维码生成中间带图片Logo

iOS二维码生成中间带图片Logo
  • samuelandkevin
  • samuelandkevin
  • 2016年04月18日 16:05
  • 4497

java利用qrcode生成带有logo的二维码(logo位置及大小自己调)

一:下载Qrcode.jar,放到lib文件夹下 二:java代码 package com.test; import java.awt.Color; import java.a...
  • m0_37934074
  • m0_37934074
  • 2017年09月11日 17:44
  • 838

微信生成公众号带参数二维码用户头像 加上文字生成图片(三)

// 建立一幅 434X630 的图像 $im = imagecreatetruecolor(434,630);  //设置透明背景图  如果用imagecreate 则图片二维码上的用户头像变灰 ...
  • lin12qun
  • lin12qun
  • 2015年09月11日 16:12
  • 4105

【iOS】CoreImage原生二维码生成(二)一个方法生成带logo的二维码

在上一篇中介绍了怎么生成二维码:《【iOS】CoreImage原生二维码生成(一)》。这一篇说说怎么生成带logo的二维码。 这里的思路是,在生成的二维码的中心加一个logo图片。这里的难点就是怎么在...
  • zhuming3834
  • zhuming3834
  • 2016年03月09日 15:30
  • 5307

zxing生成和解析带logo二维码

使用java实现的,简单通用二维码生成工具
  • MyNoteBlog
  • MyNoteBlog
  • 2017年05月01日 11:26
  • 1348
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:生成带链接的二维码
举报原因:
原因补充:

(最多只允许输入30个字)