java-二维码生成页面输出

二维码现在很流行。

前端也有二维码的生成方式: jquery.qrcode

qrcode其实是通过使用jQuery实现图形渲染,支持Html5技术的才能实现,只要是canvas实现的。传输门

而java生成二维码已经很成熟了,兼容性也很好。

直接下载jar包  传输门

下载文件里有core-3.0.0.jar和BASE64Encoder.jar两个jar包

第一个是二维码使用的,第二个是base64使用的

不转换base64可以不使用第二个

导入到项目中使用就可以了。

基础使用方法:

public String generalQRCode(String url){
          Hashtable hints= new Hashtable();
          hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
          String binary = null;
          try {        //400,400是二维码图片宽高
              BitMatrix bitMatrix = new MultiFormatWriter().encode(
              url, BarcodeFormat.QR_CODE, 400, 400, 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, "png", out);
              byte[] bytes = out.toByteArray();

              // 2、将字节数组转为二进制
              BASE64Encoder encoder = new BASE64Encoder();
              binary = encoder.encodeBuffer(bytes).trim(); 

              } catch (Exception e) {
              e.printStackTrace();
              }
          return "data:image/png;base64,"+binary;
     }
     public 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;
      }

导包后直接复制到项目中就可以使用了。

如果是springMVC框架,直接给generalQRCode方法加注解放到Controller里就可在前端调用了。

如注解例子:

@RequestMapping("/generalQRCode.do")

@ResponseBody

时间: 2024-10-15 08:50:38

java-二维码生成页面输出的相关文章

java二维码生成

二维码,是一种采用黑白相间的平面几何图形经过相应的编码算法来记载文字.图画.网址等信息的条码图画.如下图 二维码的特色: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比一般条码信息容量约高几十倍. 2.  编码规模广 该条码能够把图画.声响.文字.签字.指纹等能够数字化的信息进行编码,用条码表明出来:能够表明多种语言文字:可表明图画数据. 3.  容错能力强,具有纠错功用 这使得二维条码因穿孔.污损等导致部分损坏时,照样能够正确

Java二维码生成与解码

基于google zxing 的Java二维码生成与解码 一.添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包) <!-- google二维码工具 --> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.1.0</version> </dependen

java 二维码生成

直接上代码: 二维码生成核心类: package com.bbkj.wechat.tool; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.util.EnumMap; import javax.imageio.ImageIO; import com.google.zxing.BarcodeF

java 二维码生成(可带图片)springboot版

本文(2019年6月29日 飞快的蜗牛博客) 有时候,男人和女人是两个完全不同的世界,男人的玩笑和女人的玩笑也完全是两码事,爱的人完全不了解你,你也不要指望一个女人了解你,所以男的不是要求别人怎么样,是要求自己怎么样,男人更应该对自己好点,照顾好自己是最基本的, 不然你怎么照顾别人,男人是竞争的产物不是吗? 言归正传: 首先加入依赖我的目前依赖是: <!-- 二维码生成 --><dependency> <groupId>com.google.zxing</grou

java二维码生成与解析代码实现

二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍. 2.  编码范围广 该条码可以把图片.声音.文字.签字.指纹等可以数字化的信息进行编码,用条码表示出来:可以表示多种语言文字:可表示图像数据. 3.  容错能力强,具有纠错功能 这使得二维条码因穿孔.污损等引起局部损坏时,照样可以正确

[转]java二维码生成与解析代码实现

转载地址:点击打开链接 二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1.  高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍. 2.  编码范围广 该条码可以把图片.声音.文字.签字.指纹等可以数字化的信息进行编码,用条码表示出来:可以表示多种语言文字:可表示图像数据. 3.  容错能力强,具有纠错功能 这使得二维条码因穿孔.污损等引起

Java 二维码生成工具类

public class QRcodeUtils { /** * 容错率等级 L */ public static final char CORRECT_L = 'L'; /** * 容错率等级 M */ public static final char CORRECT_M = 'M'; /** * 容错率等级 Q */ public static final char CORRECT_Q = 'Q'; /** * 容错率等级 H */ public static final char CORR

java二维码生成工具

import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Hashtable; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.BinaryBitmap; import

Java二维码生成与解码工具Zxing使用

1 package com.csii.zxing.test; 2 3 import java.awt.image.BufferedImage; 4 import java.io.File; 5 import java.io.IOException; 6 import java.util.HashMap; 7 import java.util.Hashtable; 8 import java.util.Map; 9 10 import javax.imageio.ImageIO; 11 12 im