C#用QRCode生成二维码遇到的坑

本文介绍了QRCode码的基本概念,以及在编码过程中如何设置内容模式、容错率、二维码大小的控制,重点在于二维码版本的选择对内容容量的影响和编码时可能遇到的问题。
摘要由CSDN通过智能技术生成

什么是QRCode?

QR Code码,是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、拥有保密防伪性强等优点。

遇到的问题

首先刚开始用的时候,如果你生成的码的内容不同的话,那最后生成的码的大小它是固定不变的,下面是刚开始的代码。
string content = "1458963";
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
            qrCodeEncoder.QRCodeScale = 8;
            qrCodeEncoder.QRCodeVersion =0;
            System.Drawing.Image image = qrCodeEncoder.Encode(content);

其中各个参数详情如下

//生成二维码内容模式分为三种,数字,字母,字节,这里设置成Byte,另外它也支持汉字

qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;


 //设置容错率,它的意思就是二维码被遮挡住一部分实际上也是能扫出内容的,它分为四个级别     L、M、Q、H表示低、中、高和最高容错等级,容错率越高,则二维码图片能被遮挡的部分越大。

qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;

//设置二维码的,每个码点的大小

qrCodeEncoder.QRCodeScale = 8;

//下面这个设置就是今天的重点,版本哈是根据二维码矩阵的行数、列数来区分的,即一行或一列中包含的码点数量,从版本1到版本40共40种。版本不同,二维码的容量和码点密度就不同。版本越高二维码容量,即可承载的内容越多。如果设置成0的话,二维码的大小会随内容的多少自动进行变化,如果指定版本的话,二维码的大小会固定不变,但是这里注意一下,如果你的内容特别多但是指定的版本小的话,它直接会报错数组下标越界。

下面是对应每个版本的码点数量

●版本1 是 21 x 21的矩阵(即二维码有21行,21列的小矩形组成)

●版本2 是 25 x 25的矩阵

●版本40 是 177 x 177的矩阵

每个版本会增加4以此类推

qrCodeEncoder.QRCodeVersion =0;

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值