關於二維碼。
阿新 • • 發佈:2018-12-31
官網各版本:http://www.qrcode.com/zh/about/version.html
自己拓展版本。
糾錯型別自己選擇更準確。
int RS_BLOCK_TABLE[78][6] = { // L =1 // M =0 // Q =3 // H =2 // 1 {1, 26, 19,0,0,0}, {1, 26, 16,0,0,0}, {1, 26, 13,0,0,0}, {1, 26, 9,0,0,0}, // 2 {1, 44, 34,0,0,0}, {1, 44, 28,0,0,0}, {1, 44, 22,0,0,0}, {1, 44, 16,0,0,0}, // 3 {1, 70, 55,0,0,0}, {1, 70, 44,0,0,0}, {2, 35, 17,0,0,0}, {2, 35, 13,0,0,0}, // 4 {1, 100, 80,0,0,0}, {2, 50, 32,0,0,0}, {2, 50, 24,0,0,0}, {4, 25, 9,0,0,0}, // 5 {1, 134, 108,0,0,0}, {2, 67, 43,0,0,0}, {2, 33, 15, 2, 34, 16}, {2, 33, 11, 2, 34, 12}, // 6 {2, 86, 68,0,0,0}, {4, 43, 27,0,0,0}, {4, 43, 19,0,0,0}, {4, 43, 15,0,0,0}, // 7 {2, 98, 78,0,0,0}, {4, 49, 31,0,0,0}, {2, 32, 14, 4, 33, 15}, {4, 39, 13, 1, 40, 14}, // 8 {2, 121, 97,0,0,0}, {2, 60, 38, 2, 61, 39}, {4, 40, 18, 2, 41, 19}, {4, 40, 14, 2, 41, 15}, // 9 {2, 146, 116,0,0,0}, {3, 58, 36, 2, 59, 37}, {4, 36, 16, 4, 37, 17}, {4, 36, 12, 4, 37, 13}, // 10 {2, 86, 68, 2, 87, 69}, {4, 69, 43, 1, 70, 44}, {6, 43, 19, 2, 44, 20}, {6, 43, 15, 2, 44, 16}, //11 {4,101,81,0,0,0}, {1,80,50,4,81,51}, {4,50,22,4,51,23}, {3,36,12,8,37,13}, //12 {2, 116, 92,2, 117, 93}, {6, 58, 36, 2, 59, 37}, {4, 46, 20,6, 47, 21}, {7, 42, 14,4, 43, 15}, //13 {4, 133, 107, 0, 0, 0}, {8, 59, 37, 1, 60, 38}, {8, 44, 20,4, 45, 21}, {12, 33, 11,4, 34, 12}, //14 { 3, 145, 115,1, 146, 116}, { 4, 64, 40, 5, 65, 41}, {11, 36, 16,5, 37, 17}, {11, 36, 12, 5, 37, 13}, //15 {5, 109, 87,1, 110, 88}, {5, 65, 41, 5, 66, 42}, {5, 54, 24,7, 55, 25}, {11, 36, 12,7, 37, 13}, //16 {5, 122, 98, 1, 123, 99}, {7, 73, 45, 3, 74, 46}, {15, 43, 19,2, 44, 20}, {3, 45, 15, 13, 46, 16}, //17 { 1, 135, 107, 5, 136, 108}, {10, 74, 46, 1, 75, 47}, {1, 50, 22,15, 51, 23}, {2, 42, 14, 17, 43, 15} };
int MAX_LENGTH[17][4][4] = { //L N A 8B Han M Q H { {41, 25, 17, 10}, {34, 20, 14, 8}, {27, 16, 11, 7}, {17, 10, 7, 4} }, { {77, 47, 32, 20}, {63, 38, 26, 16}, {48, 29, 20, 12}, {34, 20, 14, 8} }, { {127, 77, 53, 32}, {101, 61, 42, 26}, {77, 47, 32, 20}, {58, 35, 24, 15} }, { {187, 114, 78, 48}, {149, 90, 62, 38}, {111, 67, 46, 28}, {82, 50, 34, 21} }, { {255, 154, 106, 65}, {202, 122, 84, 52}, {144, 87, 60, 37}, {106, 64, 44, 27} }, { {322, 195, 134, 82}, {255, 154, 106, 65}, {178, 108, 74, 45}, {139, 84, 58, 36} }, { {370, 224, 154, 95}, {293, 178, 122, 75}, {207, 125, 86, 53}, {154, 93, 64, 39} }, { {461, 279, 192, 118}, {365, 221, 152, 93}, {259, 157, 108, 66}, {202, 122, 84, 52} }, { {552, 335, 230, 141}, {432, 262, 180, 111}, {312, 189, 130, 80}, {235, 143, 98, 60} }, { {652, 395, 271, 167}, {513, 311, 213, 131}, {364, 221, 151, 93}, {288, 174, 119, 74} }, { {772,468,321,198}, {604,366,251,155}, {427,259,177,109}, {331,200,137,85}}, {{883,535,367,226}, {691,419,287,177}, {489,296,203,125}, {374,227,155,96}}, {{1022,619,425,262}, {796,483,331,204}, {580,352,241,149}, {427,259,177,109}}, {{1101,667,458,282},{871,528,362,223},{621,376,258,159},{468,283,194,120}}, {{1250,758,520,320},{991,600,412,254},{703,426,292,180},{530,321,220,136}}, {{1408,854,586,361},{1082,656,450,277},{775,470,322,198},{602,365,250,154}}, {{1548,938,644,397},{1212,734,504,310},{876,531,364,224},{674,408,280,173}} };
static QR_VERSIONINFO QR_VersonInfo[] = {{0}, // (僟儈乕:Ver.0) { 1, // Ver.1 26, 19, 16, 13, 9, 0, 0, 0, 0, 0, 0, 0, 1, 26, 19, 1, 26, 16, 1, 26, 13, 1, 26, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 2, // Ver.2 44, 34, 28, 22, 16, 1, 18, 0, 0, 0, 0, 0, 1, 44, 34, 1, 44, 28, 1, 44, 22, 1, 44, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 3, // Ver.3 70, 55, 44, 34, 26, 1, 22, 0, 0, 0, 0, 0, 1, 70, 55, 1, 70, 44, 2, 35, 17, 2, 35, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 4, // Ver.4 100, 80, 64, 48, 36, 1, 26, 0, 0, 0, 0, 0, 1, 100, 80, 2, 50, 32, 2, 50, 24, 4, 25, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 5, // Ver.5 134, 108, 86, 62, 46, 1, 30, 0, 0, 0, 0, 0, 1, 134, 108, 2, 67, 43, 2, 33, 15, 2, 33, 11, 0, 0, 0, 0, 0, 0, 2, 34, 16, 2, 34, 12}, { 6, // Ver.6 172, 136, 108, 76, 60, 1, 34, 0, 0, 0, 0, 0, 2, 86, 68, 4, 43, 27, 4, 43, 19, 4, 43, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, { 7, // Ver.7 196, 156, 124, 88, 66, 2, 22, 38, 0, 0, 0, 0, 2, 98, 78, 4, 49, 31, 2, 32, 14, 4, 39, 13, 0, 0, 0, 0, 0, 0, 4, 33, 15, 1, 40, 14}, { 8, // Ver.8 242, 194, 154, 110, 86, 2, 24, 42, 0, 0, 0, 0, 2, 121, 97, 2, 60, 38, 4, 40, 18, 4, 40, 14, 0, 0, 0, 2, 61, 39, 2, 41, 19, 2, 41, 15}, { 9, // Ver.9 292, 232, 182, 132, 100, 2, 26, 46, 0, 0, 0, 0, 2, 146, 116, 3, 58, 36, 4, 36, 16, 4, 36, 12, 0, 0, 0, 2, 59, 37, 4, 37, 17, 4, 37, 13}, {10, // Ver.10 346, 274, 216, 154, 122, 2, 28, 50, 0, 0, 0, 0, 2, 86, 68, 4, 69, 43, 6, 43, 19, 6, 43, 15, 2, 87, 69, 1, 70, 44, 2, 44, 20, 2, 44, 16}, {11, // Ver.11 404, 324, 254, 180, 140, 2, 30, 54, 0, 0, 0, 0, 4, 101, 81, 1, 80, 50, 4, 50, 22, 3, 36, 12, 0, 0, 0, 4, 81, 51, 4, 51, 23, 8, 37, 13}, {12, // Ver.12 466, 370, 290, 206, 158, 2, 32, 58, 0, 0, 0, 0, 2, 116, 92, 6, 58, 36, 4, 46, 20, 7, 42, 14, 2, 117, 93, 2, 59, 37, 6, 47, 21, 4, 43, 15}, {13, // Ver.13 532, 428, 334, 244, 180, 2, 34, 62, 0, 0, 0, 0, 4, 133, 107, 8, 59, 37, 8, 44, 20, 12, 33, 11, 0, 0, 0, 1, 60, 38, 4, 45, 21, 4, 34, 12}, {14, // Ver.14 581, 461, 365, 261, 197, 3, 26, 46, 66, 0, 0, 0, 3, 145, 115, 4, 64, 40, 11, 36, 16, 11, 36, 12, 1, 146, 116, 5, 65, 41, 5, 37, 17, 5, 37, 13}, {15, // Ver.15 655, 523, 415, 295, 223, 3, 26, 48, 70, 0, 0, 0, 5, 109, 87, 5, 65, 41, 5, 54, 24, 11, 36, 12, 1, 110, 88, 5, 66, 42, 7, 55, 25, 7, 37, 13}, {16, // Ver.16 733, 589, 453, 325, 253, 3, 26, 50, 74, 0, 0, 0, 5, 122, 98, 7, 73, 45, 15, 43, 19, 3, 45, 15, 1, 123, 99, 3, 74, 46, 2, 44, 20, 13, 46, 16}, {17, // Ver.17 815, 647, 507, 367, 283, 3, 30, 54, 78, 0, 0, 0, 1, 135, 107, 10, 74, 46, 1, 50, 22, 2, 42, 14, 5, 136, 108, 1, 75, 47, 15, 51, 23, 17, 43, 15}, {18, // Ver.18 901, 721, 563, 397, 313, 3, 30, 56, 82, 0, 0, 0, 5, 150, 120, 9, 69, 43, 17, 50, 22, 2, 42, 14, 1, 151, 121, 4, 70, 44, 1, 51, 23, 19, 43, 15}, {19, // Ver.19 991, 795, 627, 445, 341, 3, 30, 58, 86, 0, 0, 0, 3, 141, 113, 3, 70, 44, 17, 47, 21, 9, 39, 13, 4, 142, 114, 11, 71, 45, 4, 48, 22, 16, 40, 14}, {20, // Ver.20 1085, 861, 669, 485, 385, 3, 34, 62, 90, 0, 0, 0, 3, 135, 107, 3, 67, 41, 15, 54, 24, 15, 43, 15, 5, 136, 108, 13, 68, 42, 5, 55, 25, 10, 44, 16}, {21, // Ver.21 1156, 932, 714, 512, 406, 4, 28, 50, 72, 94, 0, 0, 4, 144, 116, 17, 68, 42, 17, 50, 22, 19, 46, 16, 4, 145, 117, 0, 0, 0, 6, 51, 23, 6, 47, 17}, {22, // Ver.22 1258, 1006, 782, 568, 442, 4, 26, 50, 74, 98, 0, 0, 2, 139, 111, 17, 74, 46, 7, 54, 24, 34, 37, 13, 7, 140, 112, 0, 0, 0, 16, 55, 25, 0, 0, 0}, {23, // Ver.23 1364, 1094, 860, 614, 464, 4, 30, 54, 78, 102, 0, 0, 4, 151, 121, 4, 75, 47, 11, 54, 24, 16, 45, 15, 5, 152, 122, 14, 76, 48, 14, 55, 25, 14, 46, 16}, {24, // Ver.24 1474, 1174, 914, 664, 514, 4, 28, 54, 80, 106, 0, 0, 6, 147, 117, 6, 73, 45, 11, 54, 24, 30, 46, 16, 4, 148, 118, 14, 74, 46, 16, 55, 25, 2, 47, 17}, {25, // Ver.25 1588, 1276, 1000, 718, 538, 4, 32, 58, 84, 110, 0, 0, 8, 132, 106, 8, 75, 47, 7, 54, 24, 22, 45, 15, 4, 133, 107, 13, 76, 48, 22, 55, 25, 13, 46, 16}, {26, // Ver.26 1706, 1370, 1062, 754, 596, 4, 30, 58, 86, 114, 0, 0, 10, 142, 114, 19, 74, 46, 28, 50, 22, 33, 46, 16, 2, 143, 115, 4, 75, 47, 6, 51, 23, 4, 47, 17}, {27, // Ver.27 1828, 1468, 1128, 808, 628, 4, 34, 62, 90, 118, 0, 0, 8, 152, 122, 22, 73, 45, 8, 53, 23, 12, 45, 15, 4, 153, 123, 3, 74, 46, 26, 54, 24, 28, 46, 16}, {28, // Ver.28 1921, 1531, 1193, 871, 661, 5, 26, 50, 74, 98, 122, 0, 3, 147, 117, 3, 73, 45, 4, 54, 24, 11, 45, 15, 10, 148, 118, 23, 74, 46, 31, 55, 25, 31, 46, 16}, {29, // Ver.29 2051, 1631, 1267, 911, 701, 5, 30, 54, 78, 102, 126, 0, 7, 146, 116, 21, 73, 45, 1, 53, 23, 19, 45, 15, 7, 147, 117, 7, 74, 46, 37, 54, 24, 26, 46, 16}, {30, // Ver.30 2185, 1735, 1373, 985, 745, 5, 26, 52, 78, 104, 130, 0, 5, 145, 115, 19, 75, 47, 15, 54, 24, 23, 45, 15, 10, 146, 116, 10, 76, 48, 25, 55, 25, 25, 46, 16}, {31, // Ver.31 2323, 1843, 1455, 1033, 793, 5, 30, 56, 82, 108, 134, 0, 13, 145, 115, 2, 74, 46, 42, 54, 24, 23, 45, 15, 3, 146, 116, 29, 75, 47, 1, 55, 25, 28, 46, 16}, {32, // Ver.32 2465, 1955, 1541, 1115, 845, 5, 34, 60, 86, 112, 138, 0, 17, 145, 115, 10, 74, 46, 10, 54, 24, 19, 45, 15, 0, 0, 0, 23, 75, 47, 35, 55, 25, 35, 46, 16}, {33, // Ver.33 2611, 2071, 1631, 1171, 901, 5, 30, 58, 86, 114, 142, 0, 17, 145, 115, 14, 74, 46, 29, 54, 24, 11, 45, 15, 1, 146, 116, 21, 75, 47, 19, 55, 25, 46, 46, 16}, {34, // Ver.34 2761, 2191, 1725, 1231, 961, 5, 34, 62, 90, 118, 146, 0, 13, 145, 115, 14, 74, 46, 44, 54, 24, 59, 46, 16, 6, 146, 116, 23, 75, 47, 7, 55, 25, 1, 47, 17}, {35, // Ver.35 2876, 2306, 1812, 1286, 986, 6, 30, 54, 78, 102, 126, 150, 12, 151, 121, 12, 75, 47, 39, 54, 24, 22, 45, 15, 7, 152, 122, 26, 76, 48, 14, 55, 25, 41, 46, 16}, {36, // Ver.36 3034, 2434, 1914, 1354, 1054, 6, 24, 50, 76, 102, 128, 154, 6, 151, 121, 6, 75, 47, 46, 54, 24, 2, 45, 15, 14, 152, 122, 34, 76, 48, 10, 55, 25, 64, 46, 16}, {37, // Ver.37 3196, 2566, 1992, 1426, 1096, 6, 28, 54, 80, 106, 132, 158, 17, 152, 122, 29, 74, 46, 49, 54, 24, 24, 45, 15, 4, 153, 123, 14, 75, 47, 10, 55, 25, 46, 46, 16}, {38, // Ver.38 3362, 2702, 2102, 1502, 1142, 6, 32, 58, 84, 110, 136, 162, 4, 152, 122, 13, 74, 46, 48, 54, 24, 42, 45, 15, 18, 153, 123, 32, 75, 47, 14, 55, 25, 32, 46, 16}, {39, // Ver.39 3532, 2812, 2216, 1582, 1222, 6, 26, 54, 82, 110, 138, 166, 20, 147, 117, 40, 75, 47, 43, 54, 24, 10, 45, 15, 4, 148, 118, 7, 76, 48, 22, 55, 25, 67, 46, 16}, {40, // Ver.40 3706, 2956, 2334, 1666, 1276, 6, 30, 58, 86, 114, 142, 170, 19, 148, 118, 18, 75, 47, 34, 54, 24, 20, 45, 15, 6, 149, 119, 31, 76, 48, 34, 55, 25, 61, 46, 16} };