什么是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;