- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
QR编码
// QR_Encode.h // Date 2006/05/17Ver. 1.22Psytec Inc.typedef unsigned short WORD; #define max(a,b) (((a) (b)) ? (a) : (b))#define min(a,b) (((a) (b)) ? (a) : (b))#define FALSE 0#define TRUE 1#define NULL 0#if 1==1 //宏定义//4种纠错等级,可恢复的码字比例为: #define QR_LEVEL_L0 //7% #define QR_LEVEL_M1 //15% #define QR_LEVEL_Q2 //25% #define QR_LEVEL_H3 //30% //编码形式#define QR_MODE_NUMERAL0 //数字模式 #define QR_MODE_ALPHABET1 //字母数字模式#define QR_MODE_8BIT2 //8位字节模式 #define QR_MODE_KANJI3 //日本汉字模式// 版本级别数字字母数字8位字节日本汉字中国汉字模式// 1~ 910988//10~2612111610//27~4014131612//P17 字符计数指示符的位数 #define QR_VRESION_S0 // 1 ~ 9#define QR_VRESION_M1 // 10 ~ 26#define QR_VRESION_L2 // 27 ~ 40#define QR_VER1_SIZE 21// 版本的行列数#define QR_MARGIN 4// 每个版本增加的行列数 #define MAX_ALLCODEWORD 3706//400// //P14,P35 数据容量[码字]* (E) (VER:40), 所有码字为8位 #define MAX_DATACODEWORD 2956//400// //P27最大信息码子(Ver:40-L) ,所有码字为8位 #define MAX_CODEBLOCK 153 //最大纠错码字 Ver:36.37.38_L_第二块#define MAX_MODULESIZE 177 //P14 每边的模块数(A) (VER:40 ) Ver:40 = 21+(Ver-1)*4#endif //宏定义 #if 1==1 //结构//P28 表9 QR码符号各版本的纠错特效typedef struct tagRS_BLOCKINFO{int ncRSBlock;// 纠错的块数 int ncAllCodeWord;// 码字总数 int ncDataCodeWord;// 指定纠错等级下的数据码字数 } RS_BLOCKINFO, *LPRS_BLOCKINFO;typedef struct tagQR_VERSIONINFO{int nVersionNo; // Ver 1~40int ncAllCodeWord; //码字总数=数据码字+纠错码字 int ncDataCodeWord[4];//指定纠错等级下的数据码字 (0 = L, 1 = M, 2 = Q, 3 = H)int ncAlignPoint;//P61 表E1 校正图形 个数 int nAlignPoint[6];//P61 表E1 校正图形 行列坐标 //(0 = L, 1 = M, 2 = Q, 3 = H)RS_BLOCKINFO RS_BlockInfo1[4]; // 纠错块1 RS_BLOCKINFO RS_BlockInfo2[4]; // 纠错块2 } QR_VERSIONINFO, *LPQR_VERSIONINFO;#endif //结构 #if 1==1 //static public 常量 // 版本级别 编码形式的字节数 { S, M, L} static const int nIndicatorLenNumeral[] = {10, 12, 14}; //数字模式 static const int nIndicatorLenAlphabet[] = { 9, 11, 13}; //字母数字模式 static const int nIndicatorLen8Bit[] = { 8, 16, 16}; //8位字节模式 static const int nIndicatorLenKanji[] = { 8, 10, 12}; //日本汉字模式 //P28 表9 QR码符号各版本的纠错特效static const QR_VERS
文档评论(0)