加载中…
个人资料
pooran
pooran
  • 博客等级:
  • 博客积分:0
  • 博客访问:22,935
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

DataMatrix编码1——生成码字

(2012-03-26 00:17:53)
标签:

杂谈

分类: DataMatrix
   
    DataMatrix编码的第一步骤,需要将原始信息转换成DataMatrix的码字,生成的码字范围(0,255)即unsigned char。通常的编码方式为Ascii编码,将原始字符+1即生成码字;同时为了压缩码长,若其中含有连续的两位数字,则将其+130后,生成一个unsigned char。如果要进一步压缩码长,还可以混合其他的编码方式:
DataMatrix编码1——生成码字
    当混入其他方式的编码时,需先插入一个切换字符,如由Ascii切换至C40,则插入230,再切换回Ascii时,则插入254。

    编码时,逐一对原始字符进行转换,如以下字符串:ABCDE12,转换后生成码字为:66 67 68 69 70 142。码长为6。

    根据码长,查下表(http://blog.sina.com.cn/s/blog_4572df4e01019vhd.html)规则,确定最终的码长:选择12*12的那一行,其码长为8。由于8-6=2,所以仍需插入2个码字,将其填满(避免生成的二维码出现大面积空白区域)。

    计算此2码字:第一个码字为129(填充字符end of message),后面的各位为伪随机码,计算方法为253状态随机算法。公式:pseudorandom(n) = (149 × n) mod 253 + 1,其中n为当前码字的位置(此时=8),pseudorandom+129(mod 254)为最终码字。故转换后最终码字为:66 67 68 69 70 142 129 56 。






0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有