精华内容
下载资源
问答
  • 二维码的参数与对应的信息容量存储测试程序和源代码。下载压缩包解压后可以直接用在debug/bin中的exe,对照表也在程序目录中。
  • QRCodeErrorCorrect对应容错等级,容错等级越高,校验信息越多,冗余信息越多,信息量越小。 QRCodeScale QRCodeVersion QRCodeErrorCorrect MaxWordCount MaxByteCount 4 1 0 6 17 4 2 0 12 32 4 3 0 19 53 4 4 0 ...

    //可以是url也是可以是具体的字符串

                string url = "https://www.baidu.com";
                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
                qrCodeEncoder.QRCodeVersion = 5;
                qrCodeEncoder.QRCodeErrorCorrect = 0;
                Bitmap image = qrCodeEncoder.Encode(url, Encoding.UTF8);
                image.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                image.Dispose();

     

     

    参数于信息容量对照表:

    QRCodeScale对应二维码图片尺寸,和信息容量无关。

    QRCodeVersion对应二维码的密度,密度越大,信息容量越大。

    QRCodeErrorCorrect对应容错等级,容错等级越高,校验信息越多,冗余信息越多,信息量越小。

    QRCodeScale QRCodeVersion QRCodeErrorCorrect MaxWordCount MaxByteCount
    4 1 0 6 17
    4 2 0 12 32
    4 3 0 19 53
    4 4 0 28 78
    4 5 0 39 106
    4 6 0 49 134
    4 7 0 57 154
    4 8 0 72 192
    4 9 0 85 230
    4 1 1 4 14
    4 2 1 9 26
    4 3 1 15 42
    4 4 1 22 62
    4 5 1 31 84
    4 6 1 39 106
    4 7 1 45 122
    4 8 1 57 152
    4 9 1 67 180
    4 1 2 3 11
    4 2 2 7 20
    4 3 2 12 32
    4 4 2 16 46
    4 5 2 22 60
    4 6 2 27 74
    4 7 2 31 86
    4 8 2 40 108
    4 9 2 48 130
    4 1 3 1 7
    4 2 3 4 14
    4 3 3 9 24
    4 4 3 12 34
    4 5 3 16 44
    4 6 3 21 58
    4 7 3 24 64
    4 8 3 31 84
    4 9 3 36 98
    展开全文
  • 感慨二维码信息量

    千次阅读 2013-05-06 23:54:43
    今天测试: 2000个英文字符,用...而一张A4纸可以打印6个二维码图片,信息量总共是1.2万个英文字符。  直接打印1.2万个英文字符A4纸上,人眼肯定看不清。  二维码信息密度比直接印刷文字大得多! 电脑强过人!

    今天测试:

    2000个英文字符,用QRCODE格式编码成二维码,生成1800x1800像素的图片,打印到A4纸上,打印面积3平方英寸(约8cm X 8cm),通过手机扫描二维码能识别出来。

    而一张A4纸可以打印6个二维码图片,信息量总共是1.2万个英文字符。 

    直接打印1.2万个英文字符A4纸上,人眼肯定看不清。 

    二维码信息密度比直接印刷文字大得多! 电脑强过人!

     

    展开全文
  • 二维码版本与容量

    千次阅读 2020-05-20 16:47:50
    二维码QR-版本与容量 版本 矩阵大小 纠错等级 数字 字母数字 八位字节 日本汉字 中国汉字 1 21 L 41 25 17 10 10 ...
    二维码 QR - 版本与容量      
    版本 矩阵大小 纠错等级 八位字节 数字 字母数字      
         
    1 21 L 17 41 25      
    M 14 34 20      
    Q 11 27 16      
    H 7 17 10      
    2 25 L 32 77 47      
    M 26 63 38      
    Q 20 48 29      
    H 14 34 20      
    3 29 L 53 127 77      
    M 42 101 61      
    Q 32 77 47      
    H 24 58 35      
    4 33 L 78 187 114      
    M 62 149 90      
    Q 46 111 67      
    H 34 82 50      
    5 37 L 106 255 154      
    M 84 202 122      
    Q 60 144 87      
    H 44 106 64      
    6 41 L 134 322 195      
    M 106 255 154      
    Q 74 178 108      
    H 58 139 84      
    7 45 L 154 370 224      
    M 122 293 178      
    Q 86 207 125      
    H 64 154 93      
    8 49 L 192 461 279      
    M 152 365 221      
    Q 108 259 157      
    H 84 202 122      
    9 53 L 230 552 335      
    M 180 432 262      
    Q 130 312 189      
    H 98 235 143      
    10 57 L 271 652 395      
    M 213 513 311      
    Q 151 364 221      
    H 119 288 174      
    展开全文
  • 二维码

    2019-12-15 19:05:16
    二维码 1. 二维码的分类 线性堆叠式二维码 矩阵式二维码 邮政码 线性堆叠式二维码: ​ 建立在一维条形码基础之上,按需要堆积成两行或者多行。 ​ 实现:PDF417、Ultracode、Code 49、Code16K 矩阵式二维码: ​ ...

    二维码

    1. 二维码的分类

    • 线性堆叠式二维码
    • 矩阵式二维码
    • 邮政码
    线性堆叠式二维码:

    ​ 建立在一维条形码基础之上,按需要堆积成两行或者多行。

    ​ 实现:PDF417、Ultracode、Code 49、Code16K

    矩阵式二维码:

    ​ 在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、原点或者其他图形)的出现表示二进制 1, 点的不出现表示二进制的 0 。

    ​ 实现:Data Matrix、Maxi Code、Aztec Code、QR Code、Vericode

    邮政码:

    ​ 通常通过不同长度的条进行编码,主要用于邮件编码。

    ​ 实现:POSTNET、BPO 4-STATE

    2. 二维码的优缺点

    优点:

    ​ 高密度编码,信息容量大(500 多汉字)、编码范围广、容错能力强、编译可靠性高、可引入加密措施、成本低,一直做,持久耐用

    缺点:

    ​ 二维码技术成为手机病毒、钓鱼网站传播的新渠道、信息泄露

    3. QR Code

    目前流行的三大国际标准:

    ​ PDF417:不支持中文

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

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

    QR Code 的纠错能力:

    • L 级别:约可纠错 7% 的数据码字
    • M 级别:约可纠错 15% 的数据码字
    • Q 级别:约可纠错 25% 的数据码字
    • H 级别:约克纠错 30% 的数据码字
    生成二维码的方法
    • java 借助第三方的 jar 包,如:zxing(谷歌)、QRCode.jar
    • javascript 使用,jquery.qrcode.js

    4. 实例

    后端使用 zxing 生成二维码:

    导入 jar 包:

    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>core</artifactId>
        <version>3.3.0</version>
    </dependency>
    
    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>javase</artifactId>
        <version>3.3.0</version>
    </dependency>
    

    生成二维码代码:

    package cn.nianzuochen.qrcode;
    
    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;
    
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Path;
    import java.util.HashMap;
    
    // 生成 二维码
    public class CreateQRCode {
        public static void main(String[] args) {
            int width = 300;
            int height = 300;
    
            String format = "jpg";
            String content = "http://www.baidu.com";
    
            // 定义二维码参数
            HashMap hints = new HashMap();
            // 确定字符集的编码
            hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
            // 确定纠错等级
            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
            // 设置边距
            hints.put(EncodeHintType.MARGIN, 2);
    
    
            try {
                // 确定内容,编码格式,宽,高,其他配置参数,获取二维码矩阵值
                BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);
                // 将生成的图片保存在指定路径下
                Path file = new File("F:/qrcode/image.jpg").toPath();
                MatrixToImageWriter.writeToPath(bitMatrix, format, file);
            } catch (WriterException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    解析二维码代码:

    package cn.nianzuochen.qrcode;
    
    import com.google.zxing.*;
    import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
    import com.google.zxing.common.HybridBinarizer;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.HashMap;
    
    public class ReadQRCode {
        public static void main(String[] args) {
            // 读取二维码的对象
            MultiFormatReader formatReader = new MultiFormatReader();
            // 二维码存储位置
            File file = new File("F:/qrcode/image.jpg");
    
            try {
                // 读取图片信息
                BufferedImage image = ImageIO.read(file);
                // 获取二进制矩阵值
                BinaryBitmap binaryBitmap =
                        new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(image)));
                // 定义二维码参数
                HashMap hints = new HashMap();
                // 确定字符集的编码
                hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
                // 解码
                Result result = formatReader.decode(binaryBitmap, hints);
                // 打印解码结果
                System.out.println("解析结果:" + result.toString());
                System.out.println("二维码格式类型:" + result.getBarcodeFormat());
                System.out.println("二维码文本内容:" + result.getText());
            } catch (IOException e) {
                e.printStackTrace();
            } catch (NotFoundException e) {
                e.printStackTrace();
            }
        }
    }
    
    前端使用 jquery-qrcode 生成

    github 地址:https://github.com/jeromeetienne/jquery-qrcode

    下载之后可以在里面找到 demo.html,所需要的是 jquery 和 jquery-qrcode 文件

    <html>
    <head>
    <title>Demo page</title>
    </head>
    <body>
        <div id="output"></div>
        <script type="text/javascript" src="../src/jquery-3.4.1.min.js"></script>
        <script type="text/javascript" src="../jquery.qrcode.min.js"></script>
        <script>
            jQuery(function(){
                jQuery('#output').qrcode({width: 64,height: 64,text: "www.baidu.com"});
            })
        </script>
        </body>
    </html>
    

    因为二维码的容错性很好,很多带 Logo 的二维码,这是利用了二维码容错性,使用 ps 等抠图或者 Java 绘图的类,对生成的图片进行二次处理的结果。

    创建个人电子名片,只需要将符合 VCard 规范(https://blog.csdn.net/xfyangle/article/details/58601585)的信息写入就可以。

    String content ="BEGIN:VCARD\n" +
                    "VERSION:2.1\n" +
                    "N:姓;名\n" +
                    "FN:姓名\n" +                       // 姓名
                    "NICKNAME:nickName\n" +             // 昵称
                    "ORG:公司;部门\n" +                 // 组织
                    "TITLE:职位\n" +                    // 职位
                    "TEL;WORK;VOICE:电话1\n" +
                    "TEL;WORK;VOICE:电话2\n" +
                    "TEL;HOME;VOICE:电话1\n" +
                    "TEL;HOME;VOICE:电话2\n" +
                    "TEL;CELL;VOICE:213231231\n" +      // 移动电话
                    "TEL;PAGER;VOICE:0775\n" +          // 电话
                    "TEL;WORK;FAX:传真\n" +
                    "TEL;HOME;FAX:传真\n" +
                    "ADR;WORK:;;单位地址:深圳;广东;43000;国家\n" +
                    "ADR;HOME;POSTAL;PARCEL:;;街道地址;深圳;广东;43000;中国\n" +
                    "URL:网址\n" +
                    "EMAIL;PREF;INTERNET:邮箱地址\n" +
                    "X-QQ:11111111\n" +
                    "END:VCARD";
    
    展开全文
  • 二维码url的长度

    千次阅读 2017-06-08 10:19:02
    要知道二维码信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。如果控制压缩内容在128个以内的话,那么二维码的优势哪里去了?经过多次测试发现,...
  • 二维码的数据容量

    千次阅读 2014-10-09 16:32:26
    版本:即通常所说的QR码的版本,QR码从版本1到版本40共有四十个版本。版本1数据容量最小,版本四十容量最大。 纠错等级:QR码有四个纠错等级,由高到低为L、M、Q、H,对应纠错率为7%,15%,25%,30%。...
  • QRCode二维码字符长度问题

    千次阅读 2017-10-10 09:08:20
    要知道二维码信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍。如果控制压缩内容在128个以内的话,那么二维码的优势哪里去了? 经过多次测试发现...
  • 前面的文章中介绍了扫面二维码和条形码《【iOS】AVFoundation架构下的原生二维码和条形码扫描》 也介绍了二维码的生成以及制作一个带logo的二维码 《【iOS】CoreImage原生二维码生成(一)》 《【iOS】CoreImage...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,785
精华内容 20,314
关键字:

二维码信息量