专栏首页个人随笔Java 骚操作--生成二维码

Java 骚操作--生成二维码

好久没发布博客了,今天发了一个Java工具类,突然发现草稿箱竟然还有以前的存货,一次性发了!!!

目录 1.二维码概念  2.二维码发展历史  3.二维码分类  4.二维码优缺点  5.QR Code

 1.二维码又称  二维条码 (2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维码上)分布的黑白相间的图形记录数据符号信息的图形。

2二维码发展历史

 1.20世纪20年代 约翰 科芒德实现邮政单据自动分拣方法,

 2.1949年美国乔 伍德兰德 伯尼西尔沃发明第一个条码专利,

 3.1959年 吉拉德 费伊塞尔申请了用条形码表示数字的专利,

 4.60年代 西尔沃尼亚发明一套条形码系统并在北美铁路系统成功应用,

 5.70年代,UPC码(Universal Product Code)在北美超市得到广泛应用,

 6.1988年中国成立了中国物品编码中心,80年代未国外研制出二维码,

 7.1997年到2000年确定了国家标准

3.二维码分类

1. 一维条码是由一组粗细不同,黑白(或彩色)相间的条,空及其相符的字符(数字字母)组成的标记,即传统条码。

2. 二维条码是用某种特定的几何图形按一定规律在平面(二维码上上分布的条,空间的图形来记录数据符号信息

二维条码也有许多不同的码制,就码制的编码原理而言,通常分为三种 类型: 1.线性堆叠式二维码

编码原理: 建立在一维条码基础上,按需要堆积成两行或多行。

2.矩阵式二维码

在一个矩形空间通过黑,白像素在矩阵中的不同分布进行编码的出现表示二进制“1”点的不出现表示二进制的“0”

3.邮政码

邮政码通过不同长度的条进行编码,主要用于邮件编码, POSTNET、 BPO 4-STATE。

4. 二维码优缺点

5. QR Code 

目前流行的三大国标准:

         PDE417:不支持中文

         DM:专利未公开,需要支付专利费用

         QR Code:专利公开,支持中文

         QR Code比其他二维码相比,具有识读速度快,数据度大,占用空间小的优势。

 QR Code 是由日本Denso公司于1994年研制的一种矩阵二维码符号码,全称是Quick Response Code。

纠错能力

L级: 约可纠错7%的数据码字M级: 约可纠错15%的数据码字Q级: 约可纠错25%的数据码字H级: 约可纠错30%的数据码字

6. 二维码制作:Java语言开发

首先引入zxing的jar包

jar包:链接:https://pan.baidu.com/s/1GzjQOqWhZYPsL0uzf569dw 密码:kril

详细操作:

package cn.code;

import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

/**
 * 
 * @author: 房上的猫
 * 
 * @time: 下午11:38:45
 * 
 * @博客地址: https://www.cnblogs.com/lsy131479/
 *
 *        生成二维码
 */

public class Zxing {
    public static void main(String[] args) {
        Zxing zxing = new Zxing();

        // 传参:二维码内容和生成路径
        if (zxing.orCode("https://www.cnblogs.com/lsy131479/", "F:\\1.jpg")) {
            System.out.println("ok,成功");
        } else {
            System.out.println("no,失败");
        }
    }

    private boolean orCode(String content, String path) {
        /*
         * 图片的宽度和高度
         */
        int width = 300;
        int height = 300;
        // 图片的格式
        String format = "png";
        // 二维码内容
        // String content = "hello,word";

        // 定义二维码的参数
        HashMap hints = new HashMap();
        // 定义字符集编码格式
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
        // 纠错的等级 L > M > Q > H 纠错的能力越高可存储的越少,一般使用M
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
        // 设置图片边距
        hints.put(EncodeHintType.MARGIN, 2);

        try {
            // 最终生成 参数列表 (1.内容 2.格式 3.宽度 4.高度 5.二维码参数)
            BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
            // 写入到本地
            Path file = new File(path).toPath();
            MatrixToImageWriter.writeToPath(bitMatrix, format, file);
            return true;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }

    }

}

二维码生成还有其他方式生成,今天这里将不再讲解,如果有兴趣的可以关注一下作者,后续会持续出教程的

  其他方式:

 1.or code 生成及解析

    2.jQuery-qrcode 生成及解析

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 论 Java 的访问权限

    Java中成员访问权限 Java中的访问权限控制符有四个: 作用域_____当前类____同一package___子孙类____其他package publi...

    房上的猫
  • JVM指令手册

    dup_x1 复制栈顶部一个字长的内容,然后将复制内容及原来弹出的两个字长的内容压入栈

    房上的猫
  • 当Java遇到XML 的邂逅+dom4j

    房上的猫
  • 在二维码生成软件中如何生成PDF417二维码

    Pdf417码,是二维码中比较特殊的码制,可以用来表示数字、字母、汉字或二进制数据。PDF417码最大的特点是信息容量大,纠错能力强,印刷要求不高,普通打印设备...

    用户5746110
  • Java 快速开发二维码生成服务

    不知道从什么时候开始,我们的生活突然之间就充满了二维码,连街边大妈的鸡蛋饼早餐摊也贴上了二维码。而且这次疫情的管控也用上了二维码,避免手工填写造成交叉感染。那么...

    码农小胖哥
  • 走近科学:二维码真的安全吗

    二维码自普及以来,无论是从它的便捷性,还是其安全问题,一直都是公众关注的焦点问题。“码”时代来势迅猛,不可阻挡,似乎一夜之间,二维码即遍布各电商平台、商场、网站...

    FB客服
  • 还可以这样玩!一键生成「专属二维码」,就靠这 4 款小程序

    今天,知晓程序(微信号 zxcx0101)给你推荐 4 款二维码生成器小程序,让你轻松玩转二维码。

    知晓君
  • 二维码会使用完么?

    现在生活中总是会使用到二维码,在支付中、博客的推广图片上、各种各样的商品推广,都有着二维码的身影,二维码已经是我们的日常生活中有着不可替代的便捷信息载体,近几日...

    Debug客栈
  • 利用JS生成自己的个性二维码

    二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也...

    框架师
  • 让你的二维码变得好看

    伪君子

扫码关注云+社区

领取腾讯云代金券