java生成二维码(使用zxing.jar)
来源:互联网 发布:文章网站数据库设计 编辑:程序博客网 时间:2024/05/29 17:24
前言:
前两天,因为项目的需要生成二维码,以前也没有弄完。于是与百度一下发现还是有很多代码可以借鉴的,于是乎就找到一篇文章参考,完成了任务。在此向开源奉献的程序员们表示致敬。
本文参考:http://blog.csdn.net/sxg0205/article/details/50887057
http://jingyan.baidu.com/article/25648fc1902dbf9191fd0000.html
jar包依赖:可以从下面链接下载
下载地址:http://download.csdn.net/download/xinghuo0007/10103887
说明:如果没有积分,可以QQ1227387823给我要。
生成工具二维码工具类:
/** * Created by xy on 2017/10/19. * @author zxy * 生成二维码工具类 */public class QRCodeUtil { /** * 二维码生成器 * * @param content content可以是一个url 也可以是文本内容 * @return String 成功返回文件的base64字符串;失败返回null * @throws IOException */ public static String generalQRCodeStr(String content) { Hashtable hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); String binary = null; try { BitMatrix bitMatrix = new MultiFormatWriter().encode( content, BarcodeFormat.QR_CODE, 200, 200, hints); /* 实现一: 输出图片到指定目录 File outputFile = new File("d://1.jpg"); MatrixToImageWriter.writeToFile(bitMatrix, "png", outputFile); */ // 实现二:生成二维码图片并将图片转为二进制传递给前台 // 1、读取文件转换为字节数组 ByteArrayOutputStream out = new ByteArrayOutputStream(); BufferedImage image = toBufferedImage(bitMatrix); ImageIO.write(image, "jpg", out); byte[] bytes = out.toByteArray(); // 2、将字节数组转为二进制 BASE64Encoder encoder = new BASE64Encoder(); binary = encoder.encodeBuffer(bytes).trim(); } catch (Exception e) { e.printStackTrace(); return null; } return binary; } /** * 二维码生成器 * @param content content可以是一个url 也可以是文本内容 * @param filePath 生成文件的路径,包含文件名称 * @return boolean 成功true;失败false * @throws IOException */ @SuppressWarnings({"unchecked", "rawtypes", "restriction"}) public static boolean generalQRCodeFile(String content, String filePath) { Hashtable hints = new Hashtable(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); try { BitMatrix bitMatrix = new MultiFormatWriter().encode( content, BarcodeFormat.QR_CODE, 200, 200, hints); // 实现一: 输出图片到指定目录 File file = new File(filePath); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs();//文件父级创建目录不存在,则创建 file.createNewFile();//创建文件 } MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file); } catch (Exception e) { e.printStackTrace(); return false; } return true; } /** * 辅助方法 * 生成图片 * */ private static BufferedImage toBufferedImage(BitMatrix matrix) { int width = matrix.getWidth(); int height = matrix.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, matrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); } } return image; }}
使用方法:
案例一:在页面上直接引用
后台代码:
String url = "https://www.baidu.com"; //生成base64格式,可以在页面上直接引用 String base64QRCode = QRCodeUtil.generalQRCodeStr(url); request.setAttrubute("base64QRCode",base64QRCode );
前台代码:
//前台页面: <div class="align_center" style="overflow: hidden"> <span style="margin-top: 81px;margin-left: 49px;display: inline-block">百度二维码:</span> <img src="data:image/jpg;base64,${base64QRCode}" style="display: inline-block;float: right;margin-right: 38px;"> </div> 注意:使用<img>标签,src前面一定要有 data:image/jpg;base64,
案例二:生成文件
String url = "https://www.baidu.com"; String filePath = "D://test//测试二维码.jpg"; boolean isSuccess = QRCodeUtil.generalQRCodeFile(url, filePath); if(isSuccess ){ System.out.print("生成成功!"); }else{ System.out.print("生成失败!"); }
阅读全文
0 0
- java生成二维码(使用zxing.jar)
- java 使用zxing 生成二维码
- java 使用zxing生成二维码
- java 使用zxing 生成二维码
- java使用zxing生成二维码
- 【JAVA】使用ZXing生成二维码
- java 使用zxing生成二维码
- java 使用zxing 生成二维码
- java 使用ZXing生成二维码
- java使用zxing生成二维码
- Java实现二维码-使用Zxing生成二维码
- JAVA生成二维码(zxing)
- ZXing生成二维码(Java)
- java实现二维码生成,使用Google zxing
- java中,使用zxing生成二维码
- java入门--使用zxing生成二维码链接
- Java使用zxing生成解读QRcode二维码
- JAVA生成二维码(使用zxing方式)
- 百度UEditor编译器中获取HTML和添加HTML问题
- pyspider_demo
- 求斐波那契数的两种方法(递归法和迭代法)
- 用JNDI实现数据库连接池
- Q
- java生成二维码(使用zxing.jar)
- 文章标题
- java 抽象类和接口
- CoordinatorLayout之初步认识
- 移动硬盘H盘损坏文件系统变成RAW如何恢复
- 大数据(二十八)HBASE【Hbase 体系架构】
- handler
- 通用Mapper和PageHelper插件 学习笔记
- 用MyEclipse连接URL解析json对象,并将数据以表格形式写入PostgreSQL数据库