资讯专栏INFORMATION COLUMN

java生成普通二维码

sanyang / 2931人阅读

摘要:二维码是根据一定规则生成,存储信息的小图片。比如可以存储参数存储等内容。

二维码是根据一定规则生成,存储信息的小图片。比如可以存储参数存储url等内容。扫描之后将能获得这些内容
下文为普通二维码的生成,可自定义二维码的大小,定义二维码中存储的数据内容

1.下文使用的二维码生成jar坐标

     
        com.google.zxing
        core
        3.3.2
    
   

2.工具类的定义
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public class CodeImageUtil {

// 默认二维码宽度
public static final int WIDTH = 300;
// 默认二维码高度
public static final int HEIGHT = 300;
// 默认二维码文件格式
public static final String FORMAT = "png";
// 二维码参数
public static final Map HINTS = new HashMap();
//初始化编码格式等参数
static {
    // 字符编码
    HINTS.put(EncodeHintType.CHARACTER_SET, "utf-8");
    HINTS.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
    // 二维码与图片边距
    HINTS.put(EncodeHintType.MARGIN, 2);
}

/**
 * 
 * @description:功能描述     将二维码写出到输出流中
 * @param content    二维码内容即要存储在二维码中的内容(扫描二维码之后获取的内容)
 * @param stream    输出流
 * @param width    二维码宽
 * @param height    二维码高
 * @throws WriterException
 * @throws IOException
 * @see: 需要参见的其它内容
 */
public static void writeToStream(String content, OutputStream stream,
        Integer width, Integer height) throws WriterException, IOException {
    if(width==null){
        width=WIDTH;
    }
    if(height==null){
        height=HEIGHT;
    }
    BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
            BarcodeFormat.QR_CODE, width, height, HINTS);
    MatrixToImageWriter.writeToStream(bitMatrix, FORMAT, stream);
}

}

3.main中的调用
public void main(String[] arg){

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        // 生成二维码图片
        CodeImageUtil.writeToStream(url, out, 300, 300);
        InputStream in = new ByteArrayInputStream(out.toByteArray());
        //将生成的二维码写入图片,也可直接使用流
        String filePath="H:file_station" + fileName;
        FileOutputStream fos = new FileOutputStream(filePath);
        int length;
        byte[] b = new byte[1024];
        while ((length=in.read(b))>0){
          fos.write(b,0,length);
        }
        fos.flush();
        in.close();
        fos.close();

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75752.html

相关文章

  • 利用Leancloud开发小程序-生成小程序维码

    什么是Leancloud Leancloud是国内有名的BaaS提供商,什么是BaaS提供商呢?通俗点讲就是给你提供增删改查等后台服务的API,你通过这些API就可以将数据存储在云端数据库中,而不需要关系服务器环境和里面的处理逻辑,它提供的SDK有js、java、object-c、python等等。 类似的BaaS提供商还有谷歌的firebase(www.firebase.com),但容易被墙不...

    paulquei 评论0 收藏0
  • 没有实战经验?从零敲一个企业级共享项目前后端!

    摘要:业务具体介绍,本系统是一个共享图书的小程序项目,企业级,创业项目。具体业务流程类似共享自行车,也有设计押金月卡季卡等等。以上是单个页面的实现基本文件目录。其中还涉及微信支付环节。 本博客 猫叔的博客,转载请申明出阅读本文约3分钟适读人群:Java后端、Java初级、小程序前端 本文是两个GitHub项目的序章,旨在指导初级程序员完成一个企业级共享项目的前后端代码实践,丰富自身的实战经...

    刘明 评论0 收藏0
  • PHP生成微信小程序维码,可生成带参数维码

    摘要:微信小程序官方开放了个创建二维码的接口,其中有一个是生成二维码的,还有一个是葵花状的小程序码,我这里就用生成二维码。 微信小程序官方开放了3个创建二维码的接口,其中有一个是生成二维码的,还有一个是葵花状的小程序码,我这里就用php生成二维码。 首先要获取Access_token 这个请求起来也是很容易的,微信开发文档有请求接口:要把自己的小程序的APPID和APPSECRET获取到 h...

    jsliang 评论0 收藏0
  • PHP生成微信小程序维码,可生成带参数维码

    摘要:微信小程序官方开放了个创建二维码的接口,其中有一个是生成二维码的,还有一个是葵花状的小程序码,我这里就用生成二维码。 微信小程序官方开放了3个创建二维码的接口,其中有一个是生成二维码的,还有一个是葵花状的小程序码,我这里就用php生成二维码。 首先要获取Access_token 这个请求起来也是很容易的,微信开发文档有请求接口:要把自己的小程序的APPID和APPSECRET获取到 h...

    afishhhhh 评论0 收藏0
  • Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序

    摘要:我们来看一个例子,关于异常处理的一些知识点。看下面这段程序。这个方法能抛出的异常类型已经被擦除成为了。如何消除掉这个编译器错误呢把第行的改成即可。再次执行,这次既没有语法错误,也没有运行时错误了已经成功地被第行的语句捕捉住了。 文章的标题看似自相矛盾,然而我在正确二字上打了引号。我们来看一个例子,关于Java异常处理(Exception Handling)的一些知识点。 showImg...

    2bdenny 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<