java善假于物(一):利用google提供jar生成二维码
2017-06-14 00:00
399 查看
介绍
在实际开发中,二维码生成是很常见的,然而google给我们提供了一套快捷生成二维码的jar,下面我们来研究一下怎么使用.1.maven配置
<!-- 谷歌二维码 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.2.1</version> </dependency>
2.创建一个二维码生成工具类QRCodeUtil .java
package com.cppba.core.util; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import java.awt.image.BufferedImage; import java.util.Hashtable; public class QRCodeUtil { /** * * QRCodeCreate(生成二维码) * @param content 二维码内容 * @param W 宽度 * @param H 高度 * @return */ public static BufferedImage QRCodeCreate(String content, Integer W, Integer H){ //生成二维码 MultiFormatWriter mfw = new MultiFormatWriter(); BitMatrix bitMatrix = null; Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); hints.put(EncodeHintType.MARGIN, 0); try { bitMatrix = mfw.encode(content, BarcodeFormat.QR_CODE, W, H,hints); } catch (WriterException e) { e.printStackTrace(); } int width = bitMatrix.getWidth(); int height = bitMatrix.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, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); } } return image; } }
3.写一个测试的Controller
/** * 获取二维码 * text 必须用UTF8编码格式,x内容出现 & 符号时,请用 %26 代替,换行符使用 %0A */ @RequestMapping("/qrcode_image.htm") public void qrcode_image( HttpServletRequest request,HttpServletResponse response, @RequestParam(value="text", defaultValue="")String text) throws IOException { response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("image/jpeg"); BufferedImage image = QRCodeUtil.QRCodeCreate(text, 250, 250); ImageIO.write(image, "png",response.getOutputStream()); }
4.测试
我们启动我们的项目,在浏览器直接访问我们测试控制器,并带上参数我这里是:http://127.0.0.1:8080/cppba-web/qrcode_image.htm?text=http://www.baidu.com
5.运行结果
我们可以有手机扫描一下二维码,的确进的是百度首页,当然你可以自己修改text参数来动态生成你想要的二维码内容
6.注意
这里要提醒的是,text中不能带有“&“和换行符,当遇到这种符号时:& 符号用 %26 代替,换行符使用 %0A代替。github地址:https://github.com/bigbeef
个人博客:http://www.cppba.com
相关文章推荐
- Java 利用google.zxing类生成的BitMatrix二维码添加logo图标
- java利用google zxing 生成二维码
- java使用google的jar包生成二维码方法
- [JAVA]利用google的barcode4j生成二维码和条形码
- java中利用itext.jar生成word文档
- Java利用Zxing生成二维码
- 利用Google API生成二维码
- Java利用Zxing生成二维码
- Java利用Zxing生成二维码
- java利用zxing来生成和解析二维码,支持中文
- Android及Java使用google.zxing生成和解码(解析)二维码(QRCode)
- 利用Google Chart服务生成二维码
- 利用google api生成二维码名片例子
- 利用Google Chart服务生成二维码
- Java利用Zxing生成二维码
- 利用Google API生成二维码
- 二维码生成 利用google_api
- 利用Google API生成二维码
- 利用Google API生成二维码
- Java使用zpxing.jar生成带url的二维码