基于google zxing的Java二维码生成与解码

网友投稿 276 2023-04-25


基于google zxing的Java二维码生成与解码

本文实例为大家分享了java二维码生成与解码的具体代码,供大家参考,具体内容如下

一、添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包)

com.google.zxing

javase

3.1.0

commons-fileupload

1.3.1

commons-io

commons-io

2.4

二、创建生成二维码接口(接口参数为二维码内容,通常是URL)

/**

* 生成二维码

* google zxing 实现

* @param text

* @return

*/

@RequestMapping(value = "/qrcode/encode", method = RequestMethod.POST)

public void encodeQrCode(String text, HttpServletResponse response) {

try {

// 设置二维码参数

Map hints = new HashMap();

hints.put(EncodeHintType.Chttp://HARACTER_SET, "UTF-8");

BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, 150, 150, hints);

//返回二维码

MatrixToImageWriter.writeToStream(bitMatrix, "jpg", response.getOutputStream());

} catch (Exception e) {

e.printStackTrace();

}

}

三、创建二维码解码接口(直接返回解码后的二维码内容)

/**

* 二维码图片解码

* google zxing 实现

* @param qrImg

* @return

*/

@RequestMapping(value = "/qrcode/decode", method = RequestMethod.POST)

public String decodeQrCode(MultipartFile qrImg) {

if (!qrImg.isEmpty()) {

try {

BufferedImage image = ImageIO.read(qrImg.getInputStream());

BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));

// 定义二维码的参数:

HashMap hints = new HashMap<>()http://;

// 定义字符集

hints.put(DecodeHintType.CHARACTER_SET, "utf-8");

Result result = new MultiFormatReader().decode(binaryBitmap, hints);

return result.getText();

} catch (Exception e) {

e.printStackTrace();

}

}

return null;

}

1.3.1

commons-io

commons-io

2.4

二、创建生成二维码接口(接口参数为二维码内容,通常是URL)

/**

* 生成二维码

* google zxing 实现

* @param text

* @return

*/

@RequestMapping(value = "/qrcode/encode", method = RequestMethod.POST)

public void encodeQrCode(String text, HttpServletResponse response) {

try {

// 设置二维码参数

Map hints = new HashMap();

hints.put(EncodeHintType.Chttp://HARACTER_SET, "UTF-8");

BitMatrix bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.QR_CODE, 150, 150, hints);

//返回二维码

MatrixToImageWriter.writeToStream(bitMatrix, "jpg", response.getOutputStream());

} catch (Exception e) {

e.printStackTrace();

}

}

三、创建二维码解码接口(直接返回解码后的二维码内容)

/**

* 二维码图片解码

* google zxing 实现

* @param qrImg

* @return

*/

@RequestMapping(value = "/qrcode/decode", method = RequestMethod.POST)

public String decodeQrCode(MultipartFile qrImg) {

if (!qrImg.isEmpty()) {

try {

BufferedImage image = ImageIO.read(qrImg.getInputStream());

BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));

// 定义二维码的参数:

HashMap hints = new HashMap<>()http://;

// 定义字符集

hints.put(DecodeHintType.CHARACTER_SET, "utf-8");

Result result = new MultiFormatReader().decode(binaryBitmap, hints);

return result.getText();

} catch (Exception e) {

e.printStackTrace();

}

}

return null;

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:servlet基础知识_动力节点Java学院整理
下一篇:云平台主接口测试失败(云端接口)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~