Dragon
真诚欢迎您的来访,留言,投稿!欢迎(Ctrl+D)收藏并经常访问本站 --- 3uyx.com
  • 真诚欢迎您的来访,留言,投稿!欢迎(Ctrl+D)收藏并经常访问本站 --- 3uyx.com
adminAdmin  2024-07-05 11:26 沃付网络 隐藏边栏 |   抢沙发  6 
文章评分 0 次,平均分 0.0

前言

我们来演示一下使用 Zxing 生成二维码并输出到页面中。

正文

ZXing 是一个开放源码的,用 Java 实现的多种格式的 1D/2D 条码图像处理库,它包含了联系到其他语言的端口。Zxing 可以实现使用手机的内置的摄像头完成条形码的扫描及解码。

首先,我们要新建一个 web 工程(使用 maven 构建),然后在 pom.xml 里面添加 zxing 依赖

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

然后在其控制层生成图像,因为 Demo 演示我也就没有分层来写

package cn.licoy.controller;
 
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
 
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
 
/**
 * @author Licoy.cn
 * @version 1.0 / qrcode
 */
@Controller
public class QrController {@GetMapping("/")
    public void get(@RequestParam(name = "w",defaultValue = "200",required = false) int width,
                    @RequestParam(name = "h",defaultValue = "200",required = false) int height,
                    @RequestParam(name = "f",defaultValue = "png",required = false) String format,
                    @RequestParam(name = "c",defaultValue = "content") String content,
                    HttpServletResponse response) throws Exception {ServletOutputStream out = response.getOutputStream();
        Map<EncodeHintType,Object> config = new HashMap<>();
        config.put(EncodeHintType.CHARACTER_SET,"UTF-8");
        config.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        config.put(EncodeHintType.MARGIN, 0);
        BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE,width,height,config);
        MatrixToImageWriter.writeToStream(bitMatrix,format,out);
        System.out.println("二维码生成完毕,已经输出到页面中。");
    }
}

最后启动该 web 启动,访问该 web 程序根目录即可显示二维码图片。

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

admin
Admin 关注:0    粉丝:0
这个人很懒,什么都没写

发表评论

扫一扫二维码分享
×